Python 当芹菜任务在Django中完成时,更新UI的最佳方式是什么?
我希望用户能够单击按钮生成报告,向他显示生成报告动画,然后在报告生成完成后,在页面上显示success这个词 我正在考虑在单击“生成报告”按钮时创建芹菜任务。任务完成后,我更新UI的最佳方式是什么?我是否应该经常通过AJAX调用检查任务是否已完成?Django中是否有更好的方法或第三方通知类应用程序可以帮助完成此过程 谢谢Python 当芹菜任务在Django中完成时,更新UI的最佳方式是什么?,python,django,asynchronous,celery,django-celery,Python,Django,Asynchronous,Celery,Django Celery,我希望用户能够单击按钮生成报告,向他显示生成报告动画,然后在报告生成完成后,在页面上显示success这个词 我正在考虑在单击“生成报告”按钮时创建芹菜任务。任务完成后,我更新UI的最佳方式是什么?我是否应该经常通过AJAX调用检查任务是否已完成?Django中是否有更好的方法或第三方通知类应用程序可以帮助完成此过程 谢谢 Edit:我做了更多的研究,唯一能找到的是使用django angular和django websocket redis的三向数据绑定。就这个小功能而言,似乎有点过分了。我想
Edit:我做了更多的研究,唯一能找到的是使用
django angular
和django websocket redis
的三向数据绑定。就这个小功能而言,似乎有点过分了。我想如果没有web套接字,唯一可能的方法是每隔x秒不断轮询后端,以检查任务是否已完成。还有什么想法吗?轮询是一个很好的简单解决方案。为简单的功能避免给站点增加不必要的开销
while Result.state == u'PENDING':
#do your stuff
if Result.state == u'SUCCESS':
#Finished
else:
#something wrong
请注意,轮询意味着您将保持请求和连接处于打开状态。在具有大量点击的web应用程序上,这将浪费大量资源。然而,在较小的网站上,开放连接可能不是什么大不了的事。选择一个现在最容易实施的策略,当您实际遇到性能问题时,它将允许您在以后进行更改