python – 轮询芹菜任务并返回显示
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 轮询芹菜任务并返回显示,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1529字,纯文字阅读大概需要3分钟。
内容图文
![python – 轮询芹菜任务并返回显示](/upload/InfoBanner/zyjiaocheng/750/32581312890d4f70a26868c3ef91942f.jpg)
我是芹菜的新手.我跟随this example.
Views.py
def results(request):
documents = Document.objects.all()
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
data = form.cleaned_data['name']
print 'data', data
newdoc = Document(docfile=request.FILES['docfile'])
newdoc.save()
#send it to celery
documents = Document.objects.all()
return render_to_response(
'results.html',
{'documents' : documents}, context_instance=RequestContext(request))
用户将上传将由引擎处理的文件.在此期间,我希望结果页面显示已完成的所有作业.我想过使用celery并修改tasks.py来处理文件.完成后,该文件将显示为用户下载它的URL.
我想不出一种方法来异步轮询这个任务来实现这个部分.
谢谢.
解决方法:
您可以使用Django-celery-results.它是一个简单而漂亮的芹菜扩展,使您可以将任务结果存储在django数据库中.
安装扩展使用:
$pip install -U django-celery-results
更新settings.py:
CELERY_RESULT_BACKEND = 'django-db'
INSTALLED_APP = (
...
...
django_celery_results
)
通过执行数据库迁移来创建Celery数据库表:
$python manage.py migrate django_celery_results
然后,您可以从数据库中获取已完成任务的列表,并将其显示在视图中.
from django_celery_results.models import TaskResult
def tasks_view(request):
tasks = TaskResult.objects.all()
template = "tasks.html"
return render(request, template, {'tasks': tasks})
定义模板“templates / tasks.html”
<html>
<head>
<title>tasks</title>
</head>
<body>
{% if tasks %}
<ul>
{% for task in tasks %}
<li> {{task.id}} : {{ task.result }}</a></li>
{% endfor %}
</ul>
<p>It works!</p>
{% else %}
<p>No tasks are available.</p>
{% endif %}
</body>
</html>
内容总结
以上是互联网集市为您收集整理的python – 轮询芹菜任务并返回显示全部内容,希望文章能够帮你解决python – 轮询芹菜任务并返回显示所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。