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