Как правильно переопределить / перезапустить работу Jet после сбоя? - PullRequest
0 голосов
/ 05 сентября 2018

В руководстве пользователя Jet указано, что одно задание можно отправить несколько раз. Но, когда я пытаюсь перезапустить его после некоторого исключения, я получаю исключение, такое как «Не удается перезапустить сбойное задание». Если я ничего не буду делать, я не получу никаких исключений, но вычисления не будут выполняться внутри конвейера.

Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Это ошибка в руководстве по Jet 0.6.1:

Один и тот же экземпляр Job можно многократно отправлять на выполнение.

На самом деле вы отправляете на выполнение Pipeline или Dag, а Job - ваш дескриптор для одного конкретного выполнения. Таким образом, вы можете получить множество Job экземпляров для одного и того же Pipeline или Dag. Job.restart() не означает «перезапустить с нуля», но «остановить и запустить» то же самое задание, продолжив с того места, где оно осталось.

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

0 голосов
/ 06 сентября 2018

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

...