How to use scheduler in modules ?

68 views
Skip to first unread message

António Ramos

unread,
Oct 3, 2019, 6:43:24 AM10/3/19
to web...@googlegroups.com
Hello i already have in a model
from gluon.scheduler import Scheduler

scheduler = Scheduler(db)

  Then i have a module where i need to 
scheduler.queue_task(task_add, pvars=dict(a=1, b=2))
I get scheduler not define.

how can i use scheduler inside a module?

REgards
António

António Ramos

unread,
Oct 3, 2019, 6:56:22 AM10/3/19
to web...@googlegroups.com
i added in a model 
current.scheduler=scheduler
and then 
in a module
scheduler=current.scheduler

...
It works... but dont know if thats the best option...

António Ramos

unread,
Oct 3, 2019, 7:15:41 AM10/3/19
to web...@googlegroups.com
But if i do
scheduler.queue_task(task_add, pvars=dict(a=1, b=2))
task_add must reside in the same file as the scheduler initialization code.
I have many controllers and modules as independent apps. All of them can ask scheduler to start a task.
What should i do ?
Regards 
 

Ruslan Gareev

unread,
Oct 4, 2019, 6:10:46 AM10/4/19
to web...@googlegroups.com
Hi. It is not necessary to have task_add in same file, where scheduler initialiazed. Your solution with "current" is right. Add tasks and queue them anywhere!

четверг, 3 октября 2019 г., 16:15:41 UTC+5 пользователь Ramos написал:

Dave S

unread,
Oct 7, 2019, 3:21:55 AM10/7/19
to web2py-users


On Friday, October 4, 2019 at 3:10:46 AM UTC-7, Ruslan Gareev wrote:
Hi. It is not necessary to have task_add in same file, where scheduler initialiazed. Your solution with "current" is right. Add tasks and queue them anywhere!


Which can look something like this

   def modfuncx(u, y,z):
       fdir
,fn,ext = compute(y,z)
       tid
= current.scheduler.queue_task('play_fetch', pvars={'uval': u, 'path': fdir+fn+ext}, timeout=1200)
       
return fn, ext


(based on one of my projects)

/dps
Reply all
Reply to author
Forward
0 new messages