作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Django 中使用 celery 来定期安排任务。以下是文件:
任务.py
@periodic_task(run_every=timedelta(minutes=1))
def query():
...
celery .py
from __future__ import absolute_import, unicode_literals
from os import environ, path
from celery import Celery
from django.conf import settings
PROJECT_NAME = path.basename(path.dirname(__file__))
environ.setdefault('DJANGO_SETTINGS_MODULE', '%s.settings' % PROJECT_NAME)
app = Celery(PROJECT_NAME)
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
当我运行时
celery -A project worker
启动工作器,执行良好。然而,当我运行时
celery -A project beat
启动节拍调度程序时,出现以下错误:
KeyError: 'scheduler'
为什么会这样?我在 PyCharm 中使用 vagrant 并通过 vagrant ssh 访问服务器。
更新:
如果我跑
celery -A project worker --beat --scheduler django --loglevel=info
我没有收到任何错误,但工作人员没有收到任何任务。所以看起来由于某种原因没有收到任务。
同时添加
app.conf.beat_schedule = {
"query": {
"task": "query",
"schedule": crontab(minute="*", hour="*", day_of_month='*')
}
}
到 celery.py 并添加
@app.task(name="query")
到 tasks.py 不起作用。
最佳答案
app.conf.beat_schedule = {
"query": {
"task": "query",
"schedule": crontab(minute="*", hour="*", day_of_month='*')
}
}
“尝试在任务上添加路径 - project_name.tasks.func_name”
关于python - 为什么我会收到 KeyError : 'scheduler' when trying to run a celery beat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62972322/
我是一名优秀的程序员,十分优秀!