Почему Цепочка Сельдерея не выбрасывает Исключение, когда основная задача выбрасывает одно? - PullRequest
0 голосов
/ 06 февраля 2020

У меня есть набор задач

def add(x,y)
    try:
        return x+y
    except Exception:
        raise Exception('No result')
def mul(x,y)
    try:
        raise Exception('Error')
    except Exception:
        raise Exception('No result')
def sub(x,y)
    try:
        return x-y
    except Exception:
        raise Exception('No result')

Я объединяю в цепочку все задачи

try:
    runner = []
    runner.append(
        signature(
            add(2,2)
        ),
    )
    runner.append(
        signature(
            mul(2,2)
        ),
    )
    runner.append(
        signature(
            sub(3,3)
        ),
    )
    runner = chain(*runner).apply_async()
    waitForTask(runner)
except Exception:
    return False

Я создал функцию для ожидания завершения всех задач

    def waitForTask(task):
        """
        Wait ultil task finished.

        Attributes:
          task: celery task

        Returns:
            Boolean: True
        """
        while True:
            time.sleep(config.defaults['delay'])
            if task.ready():
                break
        return True

ошибка при выполнении задачи sub мне нужно получить исключение для задачи в цепочке except блок
извините за плохой английский sh
Заранее спасибо

...