Установка 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

Но я не вижу, чтобы работники повторно выбирали задачу. Что я упускаю?

Вернуться на верх