我正在调查芹菜在较长时间运行任务方面的能力,用户希望在那里观察进度。该应用程序基于Django,任务通过RPC启动,涉及到将数据库与文件系统上的文件同步。
在任务中,我要登录几个级别(警告、错误、信息、.)我还希望用户根据日志级别过滤消息,所以我想登录到我的数据库是可行的。
我的问题是:
发布于 2012-09-05 21:28:48
为什么不使用任务id更新当前状态和查询的任务。然后,您将透明地使用您配置的后端,而不是重载您的数据库。
Ask解释了技巧这里。
YourTaskObject(Task):
run(self, **kwargs):
while true:
# do some work
self.backend.store_result(self.request.id, result={"percent_done": number}, status="PROGRESS")然后只需使用AsyncTask结果:
result = YourTaskObject.AsyncResult(task_id=task_id)
if not result.ready():
progress = result.result.percent_done
else:
...https://stackoverflow.com/questions/12282733
复制相似问题