我有一个长时间的任务,需要向数据库表中添加许多记录。
在表中,有一个名为“end”的字段。在任务完成之前,该字段将为空。一旦任务完成,我将在“end”字段中写入一个值。
我能否拥有一个HTML页面,每5秒刷新一次页面,并显示来自表格的项目,直到“end”字段具有值为止?
是否有人有此类示例脚本?
我能否拥有一个HTML页面,每5秒刷新一次页面,并显示来自表格的项目,直到“end”字段具有值为止?
是否有人有此类示例脚本?
这是一个非常具体的问题,我认为没有现成的例子。
但是你可以在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访问您的表格数据。
您可以尝试使用WebSocket。Socket在监听和等待数据。Django使用表单django-channels