У меня есть задача сельдерея, которая выполняется в течение пяти минут и каждую секунду пингует внешний сервис для обновлений. Если он обнаруживает обновление, он должен немедленно сохранить обновление в модели 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()
Что мне нужно добавить, чтобы модель.save () выполнялась сразу?