Prasad Muley
unread,Aug 26, 2014, 2:58:06 AM8/26/14Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to web...@googlegroups.com
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?