我有一个芹菜任务,运行五分钟,然后每秒对外部服务执行一次ping操作。如果它检测到更新,则应立即将更新保存到Django模型。
我的问题是model.save()不会立即发生。取而代之的是,仅当五分钟结束并且芹菜任务结束时才会发生。
如何强制立即进行保存?
我的任务代码如下。我已经尝试过使用原子事务,但这仍然行不通。
class CheckForUpdates(PeriodicTask):
run_every = 300
def run(self, queue_name='unique_queue'):
end_task_time = _at_five_minutes()
while time.time() < end_task_time:
_wait_for_one_second()
result = _check_for_update()
if _update_was_found(result):
update = json.loads(result.body)
logger.info("response body: ", update)
with transaction.atomic():
model.save()
我需要添加什么来确保model.save()即时出现?