Very good idea. I have not learned to use scheduler yet. This would be very useful, I think.
2013/6/5 Joe Barnhart <joe.barnh...@gmail.com> > I think the web2py scheduler is the most amazing thing ever added to the > platform. It is truly a wonder in that it works so well and has such a > clean design. > > I was trying to improve it in the most minor way -- I wanted to create a > decorator that causes a function to be submitted to the scheduler instead > of being executed directly. That way I could easily switch from background > to foreground processing by commenting out the decorator, or add new > functions to the scheduler by adding the decorator. Here's what I came up > with: > > > def scheduled(name="Scheduled",timeout=60): > def wrap(f): > def new_f(*a): > current.db.scheduler_task.insert( > task_name=name, > function_name=f.__name__, > args='"%s"'%str(list(a)), > timeout=timeout) > return new_f > return wrap > > > In this decorator, I only passed two variables to the scheduler -- > task_name and timeout. The heck of it is, I think the decorator is working > except I'm running into a conceptual problem with the scheduler in > general. Using it I can create a new scheduled task: > > > @scheduled(name='import_times') > def import_cl2times(fid): > from ssobjects import SsMessage > from ssimporter import SsImportTimes > if fid: > fname=current.db.fileobject(fid).get('filename') > SsImportTimes.cl2read(fid) > msg=SsMessage(subject="Meet results",message="File import of meet > results %s is complete."%fname) > msg.send() > return > > > This code lives in a module and is called by the scheduler. Or.... maybe > isn't. I seem to be having module/controller/model difficulty at the > moment. > > I have much of my functionality in modules, to permit the speed of > compiled code in my rather large and growing website. I would like to call > the decorator from either the context of the models, or from tasks already > running in the background, in a module. Yes, I have background tasks which > schedule other background tasks. Have I mentioned how much I love the > scheduler??!? > > I can't seem to get the various imports right to have the scheduler > actually be able to run a bit of code in a module. i had it working at one > point when the scheduler and all of its background tasks were in the model > file. But I couldn't schedule tasks from a module since the module can't > see the model's context. But now that everything is in modules, the > scheduler can't seem to find the code to run it. > > Any help is appreciated. > > > -- > > --- > 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/groups/opt_out. > > > -- Att. Carlos J. Costa Cientista da Computação Esp. Gestão em Telecom EL MELECH NEEMAN! אָמֵן -- --- 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/groups/opt_out.