【发布时间】:2020-07-15 13:48:26
【问题描述】:
我对 Celery 很陌生,我正在尝试使用它来安排一个功能,但它似乎无法正常工作。
这是我的settings.py:(以及django给出的默认设置)
CELERY_BROKER_URL = 'amqp://guest:guest@localhost'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_RESULT_BACKEND = 'db+sqlite:///results.sqlite'
CELERY_TASK_SERIALIZER = 'json'
celery.py:
rom __future__ import absolute_import, unicode_literals
import os
from celery import Celery
from celery.schedules import crontab
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mera_project.settings')
app = Celery('mera_project')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
init.py:
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ['celery_app']
tasks_notes/tasks.py:(tasks_notes 是我的应用名称)
from celery.decorators import periodic_task
from celery.task.schedules import crontab
from tasks_notes.models import BudgetInfo
@periodic_task(run_every=(crontab(minute='*/15')))
def monthly_starting_value():
print("hi")
return 0
views.py:
from .tasks import monthly_starting_value
def app_view(request):
abcd = monthly_starting_value.delay()
print("new"+str(abcd))
我的终端中有期望值 zero 和 hi,但我得到了一个随机数作为 new 42bf83ef-850f-4b34-af78 -da696d2ee0f2 并且随机数每15分钟不断变化。 在我的 ``celery beat``` 运行终端选项卡中,我得到了类似的东西:
WARNING/ForkPoolWorker-9] hi
Task tasks_notes.tasks.monthly_starting_value[42bf83ef-850f-4b34-af78-da696d2ee0f2] succeeded in 0.0009442089994990965s: 0
每 15 分钟一次。
我什至尝试过 ``app.beat.conf_scheduleincelery.py``` 并尝试在管理阶段运行,但它没有按预期工作。
我哪里错了?
非常感谢任何帮助。
【问题讨论】:
标签: python django cron celery celerybeat