2

我看到一个使用 Celery 作为任务队列的 Django 应用程序存在一个奇怪的问题:

  1. 我开始一个任务。
  2. 在执行期间,任务调用 update_state(...) 来设置任务状态以指示进度。
  3. 任务完成。我通过日志验证了这一点。

但是,此视图 (http://myapp/tasks/37d9a3ac-5bd2-4791-9729-2234ff3be762/status) 在任务完成后的一段时间内返回一个 STALE 结果。我可以使用 Redis 和数据库作为后端来重现这个。最终任务状态正确返回,但这确实破坏了我的应用程序,因为 UI 会在用户执行任何操作之前轮询任务是否已完成。

编辑:我的应用程序部署在 Heroku 上。我想知道 Cedar 是否有任何响应缓存?

知道发生了什么吗?

4

1 回答 1

1

事实证明,这与 Celery 无关。这是因为我对 task/{id}/status 的 AJAX 查询被浏览器缓存了。告诉 jQuery 不缓存响应就可以了!

于 2012-01-14T18:23:18.187 回答