0

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

何がうまくいかないのですか?

4

2 に答える 2

1

タイムゾーン関連のバグを修正したCelery3.0.7にアップグレードする必要があります。

于 2012-08-24T20:38:10.353 に答える
0

正確な解決策はわかりませんが、追加することで回避しました

USE_L10N = False
USE_TZ = False

settings.py へ

于 2012-08-27T10:53:00.290 に答える