在短时间内运行芹菜任务(3-7秒(实现获得结果的最佳方法是什么?
现在我在下面使用这种方法。
- 用户点击按钮向 api 发送请求 - api 触发芹菜任务并返回
task_id
- 然后我们正在通过 Ajax 检查
task_id
的结果
更新:问题应该关闭,从长时间运行的任务中获取结果之间没有区别。
作为一般规则(所有后台任务,而不仅仅是Celery/Django(,这实际上是你最好的选择。同样的模式出现了
- 用户发出 HTTP 请求
- 服务器启动后台服务(通过 Celergy、其他异步服务,甚至通过命令行执行(<- 如果可以避免,请不要这样做((并返回某种形式的标识符
- 用户代理发出新的 HTTP 请求以获取有关新服务/进程状态的信息。
您应该查看长轮询