我看到一个使用 Celery 作为任务队列的 Django 应用程序存在一个奇怪的问题:
- 我开始一个任务。
- 在执行期间,任务调用 update_state(...) 来设置任务状态以指示进度。
- 任务完成。我通过日志验证了这一点。
但是,此视图 (http://myapp/tasks/37d9a3ac-5bd2-4791-9729-2234ff3be762/status) 在任务完成后的一段时间内返回一个 STALE 结果。我可以使用 Redis 和数据库作为后端来重现这个。最终任务状态正确返回,但这确实破坏了我的应用程序,因为 UI 会在用户执行任何操作之前轮询任务是否已完成。
编辑:我的应用程序部署在 Heroku 上。我想知道 Cedar 是否有任何响应缓存?
知道发生了什么吗?