Установка acks_late=True не приводит к повторному выполнению задачи, если рабочий процесс остановлен
я хочу воспроизвести это поведение, выделенное в celery doc
Если worker не завершает работу по истечении определенного времени из-за того, что он застрял в бесконечном цикле или что-то подобное, вы можете использовать сигнал KILL для принудительного завершения работы worker: но имейте в виду, что выполняемые в данный момент задачи будут потеряны (т.е. если только для задач не задан параметр acks_late).
вот моя задача:
@shared_task(
name='CHECK_ACK',
acks_late=True,
)
def check_ack():
print('task picked')
time.sleep(60)
print('task completed after 60r seconds')
вот шаги, которым я следую:
1.запустите celery: celery - главный рабочий процесс --concurrency=2
2.запустите задачу из оболочки django: check_ack.delay()
3. во время выполнения задачи выполните:pkill -9 -f "главный рабочий"
4. теперь снова запустите celery: celery -главный рабочий -параллелизм=2
Но я не вижу, чтобы работники повторно выбирали задачу. Что я упускаю?