我正在使用芹菜2.5.3和
django芹菜 – 2.5.5.我正在使用
mysql作为经纪人.
这是一个场景,当用户请求我在工作组中排队从另一个站点获取数据的作业时.这可能需要几分钟,具体取决于数据的大小.一旦作业开始,我们必须显示加载器图像.当工人完成下载数据(将采用html格式)时,我必须用检索到的数据替换加载器图像.
我们使用芹菜的原因是有时脚本需要超过30秒来完成和超时.
目前我打算使用ajax调用来检查作业的状态,这个函数将以固定的间隔使用.
我经历过一些问题,这就是我提出的问题
为了启动worker,我正在使用这段代码
def testCelery(request): result=testadd.apply_async() return HttpResponse(str(result.task_id))
这会将task_id返回给客户端并使用ajax我将向服务器发送请求以检查作业是否已完成
def getStat(request,task_id): res = AsyncResult(task_id) s=res.ready() if s==True: return HttpResponse(str(res.get())) else: return HttpResponse(str(s))
我不确定这是否是正确的方法,或者它在实时场景中的表现如何.
请指教.
编辑:使用djcelery视图检查状态
from djcelery import views as celery_views def getStat(request,task_id): return celery_views.is_task_successful(request,task_id)
它似乎正在发挥作用.并且仍然使用task_id的ajax调用来检索状态.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。