Vad*_*huk 2 python multithreading celery django-celery
我必须产生芹菜任务,它必须有一些命名空间(例如用户ID).所以我产生了它
scrapper_start.apply_async((request.user.id,), queue=account.Account_username)
app.control.add_consumer(account.Account_username, reply=True)
Run Code Online (Sandbox Code Playgroud)
并且任务从其他任务递归地产生.现在我必须检查队列的任务是否正在执行.试图检查redis中的列表长度,它在celery开始执行之前返回真实数字.如何解决这个问题呢.我只需要检查,如果队列或消费者正在执行或已经为空.谢谢
如果您只想检查队列,可以从命令行本身执行此操作.
from celery.task.control import inspect
i = inspect('scrapper_start')
i.active() # get a list of active tasks
Run Code Online (Sandbox Code Playgroud)
除了检查当前正在执行的内容之外,您还可以执行以下操作.
i.registered() # get a list of tasks registered
i.scheduled # get a list of tasks waiting
i.reserved() #tasks that has been received, but waiting to be executed
Run Code Online (Sandbox Code Playgroud)
如果您想偶尔检查一次,那么此命令行检查很好.
出于某种原因,如果你想连续监控它们,你可以使用Flower,它提供了一个漂亮的界面来监控工人.
| 归档时间: |
|
| 查看次数: |
2086 次 |
| 最近记录: |