Исключение сельдерея «TimeLimitExceeded» с группой задач - PullRequest
0 голосов
/ 01 мая 2020

У меня есть настройки этого сельдерея:

WORKER_MAX_TASKS_PER_CHILD = 1
TASK_TIME_LIMIT = 30

Когда я запускаю группу задач:

from celery import group, shared_task
from time import sleep

@shared_task
def do_something(arg):
    sleep(60)
    return arg*2

group([do_something.s(i) for i in range(3)]).apply_async()

Я получаю TimeLimitExceeded внутри группы, а затем работник убивается сельдерей сразу. Как я могу справиться с этим?

1 Ответ

0 голосов
/ 06 мая 2020

В соответствии с документацией :

Мягкое ограничение по времени позволяет заданию перехватывать исключение для очистки перед его уничтожением: жесткий тайм-аут не перехватывается. В состоянии и принудительно завершает задачу.

Ответ будет простым: не используйте жесткие ограничения для задач, если вы хотите перехватить исключение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...