我将 Celery 与 Redis 结合使用。有没有办法检查某个任务是否已使用特定参数计划(或执行)?
我知道我可以通过在使用
apply_async
安排任务时获取任务 ID 并随后使用 AsyncResult
检查来做到这一点。但我想知道是否有一种方法可以在不知道任务 id 的情况下检查队列以查找它是否已被调度。
是的,这可以通过监控和管理 API实现。
获取计划任务列表:
celery -A proj inspect scheduled
获取当前正在执行(活动)任务的列表:
celery -A proj inspect active
您的应用程序模块可能不像上面的这些示例那样
proj
- 您需要对其进行调整。
此外,请记住检查可以通过 celery.app.control.Inspect 类以编程方式执行。我在我的 Celery 监控脚本中经常使用这个。