我有一项很长的任务,那就是向数据库表中添加许多记录。 在表中,有一个名为“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 访问表数据。
关于python - Django 刷新数据库直到事务结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51888992/