## preambole I have been working on porting django-celery to web2py-celery. http://code.google.com/p/web2py-celery There are a few issues to resolve and I am working on it.
Yet I found it to be overkill for most users. It has lots of dependencies (for example RabbitMQ) and it is not easy to manage. If you do not need a huge number of worker nodes there may be a better solution. So I added this to trunk: gluon/scheduler.py This email is a request for comments as I think this should replace te current cron mechanism. ## What is it? It is a lightweight replacement for celery that uses the database instead of queues to schedule tasks and uses the default web2py admin interface to allow you to schedule tasks. It consists of a single file and has no dependencies. ## How does it work? For any existing app Create File: app/models/scheduler.py ====== from gluon.scheduler import Scheduler def demo1(*args,**vars): print 'you passed args=%s and vars=%s' % (args, vars) return 'done!' def demo2(): 1/0 scheduler = Scheduler(db,dict(demo1=demo1,demo2=demo2)) ===================================== Create File: app/modules/scheduler.py ====== scheduler.worker_loop() ===================================== ## run worker nodes with: python web2py.py -S app -M -N -R applications/app/modules/ scheduler.py ## schedule jobs using http://127.0.0.1:8000/scheduler/appadmin/insert/db/task_scheduled ## monitor scheduled jobs http://127.0.0.1:8000/scheduler/appadmin/select/db?query=db.task_scheduled.id%3E0 ## view completed jobs http://127.0.0.1:8000/scheduler/appadmin/select/db?query=db.task_run.id%3E0 Compared to celery it lacks the ability to bind tasks and workers , remotely interrupt tasks and set timeout, yet these features can be added easily and I will so eventually. Please let me know what you think. Massimo