我有一个在芹菜节拍中设置的任务,每 2 分钟运行一次。它采用基于数据库对象存在的 if 循环self.dbObject = Patch.find_by_status('READY')
我打开了工人,代码运行良好。但是当我将数据库从READY
状态切换到任何其他状态时,这不会反映在下一次运行中。芹菜是否将这些数据缓存在某处?我没有使用芹菜的后端配置。如果这是缓存,我可以以某种方式禁用或删除它吗?
辅助角色重新启动会有所帮助。 但我的应用程序负担不起。
def petchme(self):
self.dbObject = Patch.find_by_status('READY')
if self.dbObject:
print('Patch this')
else:
print('No patchgroup(s) in pipeline')
芹菜是否将这些数据缓存在某处?
否,芹菜不会缓存您的数据库访问。 更有可能的是,您的Patch
类正在执行某种缓存。 如果您真的愿意,您甚至可以在执行一定数量的任务(如 1)后将芹菜设置为基尔工人。
>谢谢@2ps,这就是问题所在。我的 DbObject 首先没有从数据库中获取最新数据,添加 db.session.commit() 有助于解决问题。
def petchme(self):
db.session.commit()
self.dbObject = Patch.find_by_status('READY')
if self.dbObject:
print('Patch this')
else:
print('No patchgroup(s) in pipeline')