我编写了一个小守护程序脚本,它将检查模型(Foo)字段的状态,如果它是0,则更新另一个模型(Bar),如果它是1,则不执行任何操作。
守护程序正常运行,如果模型状态为0,它正在按照我们的预期进行更新。
请从此处找到脚本链接:click
但是一旦我们启动守护进程脚本,它就无法在此之后读取数据库更改。 意味着,在守护进程开始运行后,即使在状态为0的模型Foo中创建了一个对象,守护进程也无法读取它,因此模型Bar没有按预期更新。
我该如何解决这个问题?
答案 0 :(得分:0)
根本问题是,在后续守护进程检查中,数据库状态与守护进程启动时相同。
我得到了这个link的解决方案的提示。
在每个orm查询之前,我重置了连接,现在orm正在读取更新的数据库。
def reset_database_connection():
from django import db
db.close_connection()