Pardon me earlier messaeg. I copied wrong code.
*#models/scheduler.py* def send_mail(to, subject, message, cc=None, bcc=None, attachments=None): """ This module is called by scheduler. mail is queued by scheduler. """ if cc is None: cc = [] if bcc is None: bcc = [] if attachments is None: attachments = [] #sending mail result= mail.send(to=to, cc=cc, bcc=bcc, subject=subject, message=message, attachments=attachments) if not result: raise Exception("Mail sent failed") This is working for me. It will change current task status to "FAILED". I can easily find which mails sent failed due to mail.send errors On Thu, Aug 28, 2014 at 4:03 PM, Prasad Muley <pmmu...@gmail.com> wrote: > NP. I got another way to catch failed mail/task. > > > > > *#models/scheduler.py* > def send_mail(to, subject, message, cc=None, bcc=None, > attachments=None): > """ > This module is called by scheduler. > mail is queued by scheduler. > """ > if cc is None: > cc = [] > if bcc is None: > bcc = [] > if attachments is None: > attachments = [] > #sending mail > print W2P_TASK > result= mail.send(to=to, cc=cc, bcc=bcc, > subject=subject, message=message, > attachments=attachments) > > if not result: > raise Exception("Mail sent failed") > > > This is working for me. It will change current task status to "FAILED". > I can easily find which mails sent failed due to mail.send errors > > > > On Thu, Aug 28, 2014 at 3:52 PM, Niphlod <niph...@gmail.com> wrote: > >> no. >> >> >> On Thursday, August 28, 2014 10:26:42 AM UTC+2, Prasad Muley wrote: >> >>> Okay. >>> I am using 2.3 . I can't upgrade it because Company decided to use 2.3 >>> only. >>> Is there anyway to access current task id in 2.3? >>> >>> >>> >>> On Thu, Aug 28, 2014 at 1:47 PM, Niphlod <nip...@gmail.com> wrote: >>> >>>> what version are you using ?! W2P_TASK is available from 2.4.1. >>>> >>>> >>>> On Thursday, August 28, 2014 9:30:28 AM UTC+2, Prasad Muley wrote: >>>> >>>>> Hi Niphlod, >>>>> I need to get current task's id. I saw your sample scheduler >>>>> example on niphlod_w2p_scheduler_tests >>>>> <https://github.com/niphlod/w2p_scheduler_tests/blob/master/models/scheduler.py> >>>>> I did it in same way but got error. >>>>> >>>>> >>>>> >>>>> *#models/scheduler.py* >>>>> def send_mail(to, subject, message, cc=None, bcc=None, >>>>> attachments=None): >>>>> """ >>>>> This module is called by scheduler. >>>>> mail is queued by scheduler. >>>>> """ >>>>> if cc is None: >>>>> cc = [] >>>>> if bcc is None: >>>>> bcc = [] >>>>> if attachments is None: >>>>> attachments = [] >>>>> #sending mail >>>>> print W2P_TASK >>>>> result= mail.send(to=to, cc=cc, bcc=bcc, >>>>> subject=subject, message=message, >>>>> attachments=attachments) >>>>> >>>>> #if not result: >>>>> # print "FAILED: Task [%d]" % W2P_TASK.id >>>>> ### update tasks' status >>>>> >>>>> >>>>> from gluon.scheduler import Scheduler >>>>> mail_scheduler = Scheduler(db, migrate=False) >>>>> >>>>> >>>>> I got following error >>>>> >>>>> DEBUG:web2py.scheduler: new task report: FAILED >>>>> DEBUG:web2py.scheduler: traceback: Traceback (most recent call last): >>>>> File "/home/prasad/Rootpy/web2py 2.3/gluon/scheduler.py", line 229, >>>>> in executor >>>>> result = dumps(_function(*args, **vars)) >>>>> File "applications/lcm/models/scheduler.py", line 16, in send_mail >>>>> print W2P_TASK >>>>> NameError: global name 'W2P_TASK' is not defined >>>>> >>>>> >>>>> >>>>> if mail.send() fails due to some issue [for eg wrong password, port >>>>> etc] >>>>> Still web2py scheduler mark current task as COMPLETED. >>>>> >>>>> That's why I want to check mail.send's result. >>>>> If result is False then I've to update current task's status as Failed. >>>>> How do I get id of current task? >>>>> >>>>> Thanks in advance. >>>>> >>>>> >>>>> On Tue, Aug 26, 2014 at 3:46 PM, Niphlod <nip...@gmail.com> wrote: >>>>> >>>>>> I'd strongly advise you to read the section on the book about >>>>>> migrations and fixing broke migrations. >>>>>> If you're starting now with the scheduler, please do the following: >>>>>> - delete all databases/*_scheduler_*.table files >>>>>> - delete scheduler_worker, scheduler_tasks, scheduler_run table from >>>>>> your backend MANUALLY >>>>>> - use Scheduler(db, ...., migrate=True) >>>>>> - open appadmin >>>>>> - reset Scheduler(db, ...., migrate=False) >>>>>> >>>>>> >>>>>> On Tuesday, August 26, 2014 11:18:25 AM UTC+2, Prasad Muley wrote: >>>>>> >>>>>>> Hi, >>>>>>> I tried to access db.scheduler_run table but it is giving me >>>>>>> following error in web2py shell and app admin UI. >>>>>>> >>>>>>> *OperationalError: (1054, "Unknown column >>>>>>> 'scheduler_run.scheduler_task' in 'field list'")* >>>>>>> >>>>>>> >>>>>>> On Tue, Aug 26, 2014 at 1:04 PM, Niphlod <nip...@gmail.com> wrote: >>>>>>> >>>>>>>> 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 a topic in >>>>>>>> the Google Groups "web2py-users" group. >>>>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>>>>>> topic/web2py/gx5o0vAGXQQ/unsubscribe. >>>>>>>> To unsubscribe from this group and all its topics, send an email >>>>>>>> to web2py+un...@googlegroups.com. >>>>>>>> >>>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thanks and Regards >>>>>>> Prasad M. Muley >>>>>>> Programmer at One Delta Synergies Pvt Ltd. | PICT 2013 >>>>>>> >>>>>>> “Pretty much everything on the web uses those two things: *C* and >>>>>>> *UNIX*,” - Dennis Ritchie >>>>>>> >>>>>>> *http://www.cs.bell-labs.com/who/dmr/* >>>>>>> <http://www.cs.bell-labs.com/who/dmr/> >>>>>>> >>>>>> -- >>>>>> 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 a topic in >>>>>> the Google Groups "web2py-users" group. >>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/to >>>>>> pic/web2py/gx5o0vAGXQQ/unsubscribe. >>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>> web2py+un...@googlegroups.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Thanks and Regards >>>>> Prasad M. Muley >>>>> Programmer at One Delta Synergies Pvt Ltd. | PICT 2013 >>>>> >>>>> “Pretty much everything on the web uses those two things: *C* and >>>>> *UNIX*,” - Dennis Ritchie >>>>> *http://www.cs.bell-labs.com/who/dmr/* >>>>> <http://www.cs.bell-labs.com/who/dmr/> >>>>> >>>> -- >>>> 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 a topic in the >>>> Google Groups "web2py-users" group. >>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>> topic/web2py/gx5o0vAGXQQ/unsubscribe. >>>> To unsubscribe from this group and all its topics, send an email to >>>> web2py+un...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >>> >>> -- >>> Thanks and Regards >>> Prasad M. Muley >>> Programmer at One Delta Synergies Pvt Ltd. | PICT 2013 >>> >>> “Pretty much everything on the web uses those two things: *C* and *UNIX*,” >>> - Dennis Ritchie >>> *http://www.cs.bell-labs.com/who/dmr/* >>> <http://www.cs.bell-labs.com/who/dmr/> >>> >> -- >> 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 a topic in the >> Google Groups "web2py-users" group. >> To unsubscribe from this topic, visit >> https://groups.google.com/d/topic/web2py/gx5o0vAGXQQ/unsubscribe. >> To unsubscribe from this group and all its topics, send an email to >> web2py+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Thanks and Regards > Prasad M. Muley > Programmer at One Delta Synergies Pvt Ltd. | PICT 2013 > > “Pretty much everything on the web uses those two things: *C* and *UNIX*,” > - Dennis Ritchie > *http://www.cs.bell-labs.com/who/dmr/* > <http://www.cs.bell-labs.com/who/dmr/> > -- Thanks and Regards Prasad M. Muley Programmer at One Delta Synergies Pvt Ltd. | PICT 2013 “Pretty much everything on the web uses those two things: *C* and *UNIX*,” - Dennis Ritchie *http://www.cs.bell-labs.com/who/dmr/* <http://www.cs.bell-labs.com/who/dmr/> -- 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.