Celerybeat 任务正在获取相同的信息,即使它已更改.(可能的缓存)我怎样才能禁用它



我有一个在芹菜节拍中设置的任务,每 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')

相关内容

  • 没有找到相关文章

最新更新