有时我会遇到这样的情况,即 Celery 队列会在意外不必要的任务上堆积起来,从而阻塞服务器。例如,代码发射了 20 000 个任务而不是 1 个。
如何检查 Celery 队列包含的 Python 任务,然后有选择地摆脱某些任务?
任务是使用标准的 Celery 装饰器定义和启动的(如果重要的话):
@task()
def update_foobar(foo, bar):
# Some heavy activon here
pass
update_foobar.delay(foo, bar)
堆栈:Django + Celery + RabbitMQ。