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 <javascript:>> 
> 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/topic/web2py/gx5o0vAGXQQ/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to 
>> web2py+un...@googlegroups.com <javascript:>.
>> 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 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.

Reply via email to