python - celery 最好的方式管理/获取任务的eta

标签 python redis celery estimation

我想每次通过 get 请求获取 celery 中的任务 eta。 celery 中没有直接的 api 来获取任务预定时间(除了 inspect() - 但对我来说这似乎非常昂贵)

我如何管理特定任务的预计到达时间?在 Django 模型中存储 eta 时间的缺点是不一致(要么我不能存储 taks_id 因为我不能 - 不知道如何从 task_id 获取 eta)

我在一个问题上看到没有 api,因为它在某种程度上取决于经纪人等。但我希望有一些解决方案

那么管理 task_id 以获得 eta 的最佳方式是什么?

后端和broker是redis

最佳答案

我不认为有什么神奇的方法可以做到这一点。

我在我的应用程序中所做的只是记录每个任务的执行时间并将其作为 ETA 返回。如果您想获得更准确的信息,还可以考虑 Redis 队列大小和任务消耗率。

关于python - celery 最好的方式管理/获取任务的eta,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44367961/

相关文章:

python - 从外部应用程序登录

redis - 在带有 STOREDIST 选项的 REDIS Georadius 命令中,我是否必须手动删除 STOREDIST key ?

unix - Redis-cli 使用EVAL执行代码

c# - StackExchange.Redis.RedisTimeoutException - 由于问题人们如何解决它?

rabbitmq - celery 工作人员/服务器可以接受来自非 celery 生产者的任务吗?

django - 使用 gevent 执行池的 celery 任务的 SynchronousOnlyOperation

linux - 无法连接到节点 rabbit@localhost : nodedown

python - "Resource busy"连接到 USB 端口时出错

python - 加载模块时出错./exp.so undefined symbol

python - curve_fit、python和excel之间的幂律回归问题