there's yet a scheduler_task table in the database. Fix migrations in the usual way, or set Scheduler(db,....,migrate=False) to avoid the error.
On Tuesday, August 26, 2014 8:58:06 AM UTC+2, Prasad Muley wrote: > > Hi, > I've web2py 2.3 version. I tried to use scheduler for mail sending. > I got this error while creating a worker for scheduler > > $ python web2py.py -K send_mail_app > > > [12:07:02] > web2py Web Framework > Created by Massimo Di Pierro, Copyright 2007-2014 > Version 2.3.2 (2012-12-17 15:03:30) stable > Database drivers available: SQLite(sqlite2), SQLite(sqlite3), > MySQL(pymysql), MySQL(MySQLdb), PostgreSQL(psycopg2), PostgreSQL(pg8000), > MSSQL(pyodbc), DB2(pyodbc), Teradata(pyodbc), IMAP(imaplib) > starting single-scheduler for "send_mail_app"... > Traceback (most recent call last): > File "/home/prasad/Rootpy/web2py 2.3/gluon/restricted.py", line 212, in > restricted > exec ccode in environment > File "applications/send_mail_app/models/scheduler.py", line 2, in > <module> > mail_scheduler = Scheduler(db) > File "/home/prasad/Rootpy/web2py 2.3/gluon/scheduler.py", line 449, in > __init__ > self.define_tables(db, migrate=migrate) > File "/home/prasad/Rootpy/web2py 2.3/gluon/scheduler.py", line 501, in > define_tables > migrate=migrate, format='%(task_name)s') > File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 7186, in > define_table > table = self.lazy_define_table(tablename,*fields,**args) > File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 7222, in > lazy_define_table > polymodel=polymodel) > File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 935, in > create_table > self.create_sequence_and_triggers(query,table) > File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 1694, in > create_sequence_and_triggers > self.execute(query) > File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 1709, in execute > return self.log_execute(*a, **b) > File "/home/prasad/Rootpy/web2py 2.3/gluon/dal.py", line 1703, in > log_execute > ret = self.cursor.execute(*a, **b) > File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line > 201, in execute > self.errorhandler(self, exc, value) > File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", > line 36, in defaulterrorhandler > raise errorclass, errorvalue > OperationalError: (1050, "Table 'scheduler_task' already exists") > > I've followed following instructions. > > *1) Created a file models/scheduler.py* > > #code from scheduler.py file > from gluon.scheduler import Scheduler > mail_scheduler = Scheduler(db) > > > def send_mail(to, subject, message, cc=None, bcc=None, > attachments=None): > """ > This module is called by scheduler. > You can check scheduler_task table and scheduler.task_status table > """ > if cc is None: > cc = [] > if bcc is None: > bcc = [] > if attachments is None: > attachments = [] > #sending mail > mail.send(to=to, cc=cc, bcc=bcc, > subject=subject, message=message, > attachments=attachments) > > *2) Called send_mail module in an external script.* > (scripts/send_mails.py) > > #extra code here > task = mail_scheduler.queue_task('send_mail', > pvars={'to': email, > 'subject': subject, > 'message': html_email}, > > start_time=datetime.datetime.now()) > print task > > > *3) Created a worker and got above error* > > > Am I missing some steps? > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.