Apo*_*los 6 python celery flask
我有以下要求.我正在创建一个将接收发布和获取请求的Web应用程序(无前端).它的功能如下.客户端将在URL上发布一个帖子,触发大量且耗时的任务.客户还可以发出Get请求并检索tak的结果.
我正在考虑使用Celery来开始这项任务.任务是一个非常大的算术计算.我的问题是如何通知客户他触发的任务已经完成,他可以检索结果.
所以我这样想:
client ->posts to web app -> web app starts task to celery -> request closed
web app notifies -> client triggered task # what is the proper way
client -> get request to web app -> web app returns result
Run Code Online (Sandbox Code Playgroud)
我知道没有一种正确的方法,所以我会更具体一点.暂时,任务将由另一个烧瓶应用程序自动触发.是否有一种方法可以自动通知烧瓶应用程序任务已完成并获取结果并将其存储在自己的数据库中?第二个问题是什么是最通用的解决方案,即使客户端是烧瓶应用程序,Android应用程序和IOS应用程序等.
我之所以要问的原因是因为我讨论了api将结果发回给客户或客户是否应负责检查并获得结果.
Aar*_*ron 10
我不得不在过去做出类似的决定,客户需要在完成长期运行的芹菜任务后进行更新.有许多不同的方法来设计系统来解决问题:
至于最通用的解决方案,那就是状态端点或WebSockets - Android和iOS内置了HTTP功能,可以使用库处理WebSockets.另一方面,回调URL解决方案特定于Flask.
| 归档时间: |
|
| 查看次数: |
1020 次 |
| 最近记录: |