我有一个简单的Celery任务,可以在数据库中写入一些进度数据。我需要使用Django视图阅读此进度更新,以将更新提供给用户。
我使用自己的表来编写进度,并使用客户端的AJAX轮询读取进度。现在不起作用,我也不知道原因。
我的数据库后端是PostgreSQL。我尝试使用以下内容(在读取视图中)更改事务隔离级别:
from django.db import transaction
#4 is READ UNCOMITTED
transaction.connections.all()[0].connection.set_isolation_level(4)
我不确定这是否会更改与数据库的新连接或当前事务正在使用的连接的隔离级别,但这似乎无法正常工作。在任务完成并提交事务之前,无法读取进度数据。
这是我尝试的第二种方法。
我还发现了update_state,我使用编写了所有进度更新update_state
,但实际上似乎没有写在数据库中。我运行celerycam并将celery配置为使用-E参数发送事件。
我想知道更新进度日并检索进度的正确方法是什么。
谢谢。
经过一番谷歌搜索后,我发现“ READ UNCOMMITTED”未在PostgreSQL中实现,将来很有可能不会实现。
我还找到了一个扩展程序,使您可以读取脏数据。这是项目的一部分,在此处输入链接描述,但这迫使我使用原始sql来获取所需的数据。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句