检查芹菜节拍是否正常运行

shi*_*ymm 13 django celery celerybeat

在我的Django项目中,我使用Celery和Rabbitmq在后台运行任务.我正在使用芹菜节拍调度程序来执行定期任务.如何以编程方式检查芹菜节拍是否正常运行?

pan*_*ore 7

定期执行对 Ping URL 的 HTTP 请求的任务。当 URL 未按时 ping 时,URL 监视器将向您发送警报。

import requests
from yourapp.celery_config import app

@app.task
def ping():
    print '[healthcheck] pinging alive status...'
    # healthchecks.io works for me:
    requests.post("https://hchk.io/6466681c-7708-4423-adf0-XXXXXXXXX")
Run Code Online (Sandbox Code Playgroud)

这个celery 定期任务计划每分钟运行一次,如果它没有达到 ping,则您的节拍服务已关闭*,监视器将启动您的邮件(或 webhook,以便您也可以使用它来获取移动推送通知) .

celery -A yourapp.celery_config beat -S djcelery.schedulers.DatabaseScheduler
Run Code Online (Sandbox Code Playgroud)

*或不知所措,您应该跟踪任务饱和度,这是 Celery 的噩梦,应该被正确检测和解决,当工作人员忙于阻塞需要优化的任务时经常发生


anj*_*505 1

您可以通过以下命令检查调度程序是否运行

python manage.py celery worker --beat
Run Code Online (Sandbox Code Playgroud)