Celery 最好的方式 manage/get 任务的 eta

Celery best way manage/get eta of task

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

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

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

那么管理 task_id 获取预计到达时间的最佳方式是什么?

后端和broker是redis

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

我在我的应用程序中所做的只是记录每个任务的执行时间,return将其作为 ETA。如果你想更准确一点,你还可以考虑 redis 队列大小和任务消耗率。