芹菜启动后,我有以下输出:
[2022-12-24 17:42:25,851: INFO/MainProcess] Connected to redis://localhost:6379//
[2022-12-24 17:42:25,854: INFO/MainProcess] mingle: searching for neighbors
[2022-12-24 17:42:26,506: INFO/Beat] beat: Starting...
[2022-12-24 17:42:26,862: INFO/MainProcess] mingle: all alone
[2022-12-24 17:42:26,881: INFO/MainProcess] [email protected] ready.
意味着beat在开始时卡住了(实际上,周期性任务没有执行)。
我像这样开始吃芹菜:
celery -A app.celery worker -B -l info
我的代码是
from datetime import timedelta
from celery import Celery
from celery.utils.log import get_task_logger
celery = Celery(
__name__,
broker='redis://localhost:6379',
include=['tasks']
)
celery.conf.timezone = 'UTC'
logger = get_task_logger(__name__)
@celery.task
def periodic_task():
logger.debug('yay')
CELERYBEAT_SCHEDULE = {
'every-second': {
'task': 'periodic_task',
'schedule': timedelta(seconds=1),
}
}
我用谷歌搜索了类似的问题,但没有找到任何合适的解决方案。非常感谢您的帮助,提前谢谢您。
您实际上需要执行 celerybeat 服务来启用周期性任务:
celery -A app.celery beat -l info