Celery を使用して、Heroku の Django アプリで単純なスケジュールされた定期的なタスクを実行しようとしています。ローカルで動作し、実行中のタスクを次のように監視できます。
python manage.py celerybeat
しかし、heroku にプッシュして実行すると:
heroku run pythonm manage.py celerybeat
私は得る:
[2012-08-24 13:31:43,185: WARNING/MainProcess] __ - ... __ - _
Configuration ->
. broker -> django://localhost//
. loader -> djcelery.loaders.DjangoLoader
. scheduler -> djcelery.schedulers.DatabaseScheduler
. logfile -> [stderr]@INFO
. maxinterval -> 5.00 minutes (300s)
[2012-08-24 13:31:43,186: INFO/MainProcess] Celerybeat: Starting...
[2012-08-24 13:31:43,325: CRITICAL/MainProcess]
celerybeat raised exception <type 'exceptions.TypeError'>:
TypeError("can't compare offset-naive and offset-aware datetimes",)
スニペット settings.py
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.admindocs',
'gunicorn',
'items',
'djcelery',
'kombu.transport.django'
)
import djcelery
import djcelery.schedulers
djcelery.setup_loader()
BROKER_URL = "django://"
CELERY_ENABLE_UTC = True
CELERY_TIMEZONE = 'America/New_York'
CELERYBEAT_SCHEDULER = "djcelery.schedulers.DatabaseScheduler"
TIME_ZONE = 'America/New_York'
スニペット tasks.py
from celery.task import PeriodicTask
from celery.registry import tasks
from datetime import timedelta
from datetime import datetime
import sys
from subprocess import Popen, PIPE
from celery.task import task, periodic_task
from celery.schedules import crontab
import time, datetime
@periodic_task(run_every=crontab(hour="*", minute="*", day_of_week="*"))
def test_task():
print "TASK RUNNING"
スニペットの要件.txt
celery==2.5.5
django-celery==2.5.5
何がうまくいかないのですか?