【发布时间】:2021-05-06 02:34:53
【问题描述】:
我有一个 Django 应用程序,它在 Celery 上运行定期任务。
过程文件
worker: celery -A myproject worker --loglevel=INFO
beat : celery -A myproject beat --scheduler redbeat.RedBeatScheduler
我已尝试使用 RedBeatScheduler 和 django_celery_beat.scheduler:DatabaseScheduler,结果相同。
settings.py
...
CELERY_BROKER_URL = os.environ.get("REDIS_URL") or 'redis://localhost:6379/0'
CELERY_BACKEND_URL = os.environ.get("REDIS_URL") or 'redis://localhost:6379/1'
CELERY_RESULT_BACKEND = os.environ.get("REDIS_URL") or 'redis://localhost:6379/0'
CELERY_REDBEAT_REDIS_URL = os.environ.get("REDIS_URL") or "redis://localhost:6379/1"
celery.py
...
app = Celery("myproject")
app.config_from_object("django.conf:settings", namespace="CELERY")
app.autodiscover_tasks()
app.conf.beat_schedule = {
'chord_scraping_00': {
'task': 'myapp.tasks.chord_scraping',
'schedule': crontab(minute="0-8"),
'args': ("00",),
}
}
在本地,一切正常。
但是当我将它部署到 Heroku 时,我没有看到任何使用 heroku logs --tail 的日志
我确实反复收到此日志:
app[heroku-redis]: source=REDIS addon=redis-rugged-87179 sample#active-connections=6 sample#load-avg-1m=0.335 sample#load-avg-5m=0.23 sample#load-avg-15m=0.23 sample#read-iops=0 sample#write-iops=0.15417 sample#memory-total=15629036kB sample#memory-free=6105444kB sample#memory-cached=4767492kB sample#memory-redis=434704bytes sample#hit-rate=0.39511 sample#evicted-keys=0
但是没有我所期望的日志app[beat]。在本地,我进入了 Celery 的日志:
INFO/MainProcess] Received task: myapp.tasks.chord_scraping[932eba58-102d-4db2-a274-722200a76d45]
周期性任务是否启动?如果不在日志尾部,日志应该出现在哪里?
【问题讨论】:
标签: heroku celery django-celery celerybeat