如何获得芹菜任务立即保存Django模型?

时间:2019-05-26 16:31:53

标签: django celery django-celery

我有一个芹菜任务,运行五分钟,然后每秒对外部服务执行一次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()即时出现?

0 个答案:

没有答案