python - Python:芹菜检查
问题描述
我发现了一些相关的问题,但没有什么能准确描述我的问题。所以我可以用这样的代码检查我的队列:
from celery.task.control import inspect
#inspect(['my_queue']), with a list instead of a str, should work!
i = inspect(['my_queue'])
print(i.active()) # get a list of active tasks
print(i.registered()) # get a list of tasks registered
print(i.scheduled()) # get a list of tasks waiting
print(i.reserved()) #tasks that has been received, but waiting to be executed
但不知何故,对于每第二次执行,该方法都会返回一个空任务列表。有时我也会收到重置连接错误。一些想法为什么会发生这种情况?有没有像间隔一样的东西,工作人员在那里填写活动任务列表或类似的东西?
解决方案
我假设您在上面编写的代码不是实际应用程序的外观(如果没有 Celery 对象,它就无法工作)。- 唯一的解释是你有一些连接问题,否则它应该在你每次运行时都能工作,除非真的没有任务要报告。换句话说 - 集群是空闲的。
请记住,inspect 会向所有工作人员广播一条消息并等待他们的回复。如果其中一些由于某种原因超时,您将不会在输出中看到该工人。如果碰巧只有那个工作人员很忙,您最终可能会得到一个空的任务列表。
尝试调用类似celery -A yourproject.celeryapp status
的方法来查看您的工作人员是否有响应,如果一切正常,请运行您的脚本。- 它应该工作。
推荐阅读
- c# - 卸载几个参考后出现未知错误
- python - 如何在python中将数据框的列名从字符串转换为元组?
- python - 如何在数组中查找非字符串索引
- android - 使用 Hilt 注入 CoroutineWorker
- swift - 如何快速在两个段中显示一个tableview数据
- python - 如何在'def'中过滤python中的数字
- c++ - IShellFolder::GetDisplayNameOf 返回乱码
- javascript - 来自不同文件中的 const 的 React Native(Redux)调度操作(在父组件中)
- r - 使用 gsub 删除不需要的字符:面临的问题
- sql-server - 错误:nanodbc/nanodbc.cpp:983: 00000: [unixODBC] [驱动程序管理器]无法打开 lib '/usr/local/lib/libmsodbcsql.13.dylib' : 找不到文件