Django 刷新数据库直到事务结束

3
我有一个长时间的任务,需要向数据库表中添加许多记录。 在表中,有一个名为“end”的字段。在任务完成之前,该字段将为空。一旦任务完成,我将在“end”字段中写入一个值。
我能否拥有一个HTML页面,每5秒刷新一次页面,并显示来自表格的项目,直到“end”字段具有值为止?
是否有人有此类示例脚本?

你如何运行长时间任务?你使用Celery吗? - Chiheb Nexus
使用 Celery 是可以的。 - nathy1984
2个回答

0

这是一个非常具体的问题,我认为没有现成的例子。

但是你可以在HTML模板中简单地使用JavaScript:

{% if end_column_empty %}

 <script>    
   setTimeout(function(){
     window.location.reload(1);
   }, 5000);
 <script>

{% else %}
 Table is Complete.
{% endif %}

以上代码假定您使用Celery或其他异步方式执行长时间的SQL任务。如果您的SQL作业需要50秒才能完成,那么上面的代码将在5秒后中断。

如果您不想使用Celery,您可以按原样执行SQL作业,同时使用jQuery更新表格 - 为此,您需要通过REST API访问您的表格数据。


0

您可以尝试使用WebSocket。Socket在监听和等待数据。Django使用表单django-channels


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接