Django celery db scheduler not working after version upgrade -
i'm upgrading celery , django-celery from:
celery==2.4.5 django-celery==2.3.3 to:
celery==3.0.24 django-celery==3.0.23 after pip upgrade run migrations , well.
i restarted celery worker , celery beat below commands:
django-admin.py celery worker --loglevel=debug --config=portal.settings.development -e django-admin.py celery beat --loglevel=debug --config=portal.settings.development the celery beat initial output shows knows tasks:
__ - ... __ - _ configuration -> . broker -> amqp://zonza:**@localhost:5672/zonza . loader -> djcelery.loaders.djangoloader . scheduler -> djcelery.schedulers.databasescheduler . logfile -> [stderr]@%debug . maxinterval -> (0s) [info] wed, 18 jun 2014 13:31:18 +0000 celery.beat 2184 140177823078144 beat: starting... [2014-06-18 13:31:18,332: debug/mainprocess] databasescheduler: intial read [2014-06-18 13:31:18,332: info/mainprocess] writing entries... [2014-06-18 13:31:18,333: debug/mainprocess] databasescheduler: fetching database schedule [2014-06-18 13:31:18,366: debug/mainprocess] current schedule: <modelentry: soon_expiry_alert soon_expiry_alert(*[], **{}) {4}> <modelentry: celery.backend_cleanup celery.backend_cleanup(*[], **{}) {4}> <modelentry: refresh_db_cache refresh_db_cache(*[], **{}) {4}> now none of periodic tasks run :/ ideas?
edit: if alter scheduler setting default 'celery.beat.persistentscheduler' one, tasks work. think need utilize djcelery 1 in project number of reasons
edit2: after 40mins of nil tasks start running properly, not ideal, have no thought why
it should in changelogs somewhere, celery changed storing dates in local time storing them in utc.
the database scheduler not able automatically convert new format, need reset last_run_at fields every periodic task.
something like:
update djcelery_periodic_task set last_run_at=null celery django-celery
No comments:
Post a Comment