пакетная служба Azure ошибки заданий и задач
Различные ошибки могут возникать при добавлении, планировании или выполнении пакетная служба Azure заданий и задач. При добавлении заданий и задач легко обнаружить ошибки, возникающие при добавлении заданий и задач. API, командная строка или пользовательский интерфейс обычно возвращает любые сбои немедленно. В этой статье описывается, как проверять и обрабатывать ошибки, возникающие после отправки заданий и задач.
Сбои задания
Задание — это группа из одной или нескольких задач, которые указывают командные строки для выполнения. При добавлении задания можно указать следующие необязательные параметры. Эти параметры влияют на то, как задание может завершиться ошибкой.
JobConstraints. При необходимости можно использовать
maxWallClockTime
свойство, чтобы задать максимальное время, когда задание может быть активным или запущенным. Если задание превышаетmaxWallClockTime
значение, задание завершается свойствомterminateReason
, заданнымMaxWallClockTimeExpiry
в JobExecutionInformation.JobPreparationTask. При необходимости можно указать задачу подготовки заданий для выполнения на каждом вычислительном узле, запланированном для выполнения задачи задания. Узел запускает задачу подготовки задания до первого запуска задачи для задания. Если задача подготовки задания завершается сбоем, задача не выполняется и задание не завершается.
JobReleaseTask. При необходимости можно указать задачу выпуска задания для заданий с задачей подготовки заданий. Когда задание завершается, задача выпуска задания выполняется на каждом узле пула, на котором выполняется задача подготовки задания. Если задача выпуска задания завершается сбоем, задание по-прежнему
completed
перемещается в состояние.
В портал Azure эти параметры можно задать в диспетчере заданий, задачах подготовки и выпусках и дополнительных разделах экрана "Добавление пакетной службы".
Свойства задания
Проверьте следующие свойства задания в JobExecutionInformation для ошибок:
Свойство
terminateReason
указывает,MaxWallClockTimeExpiry
превышает ли задание указанноеmaxWallClockTime
в ограничениях задания и, следовательно, задание завершено. Это свойство также можно задать,taskFailed
если для атрибутаonTaskFailure
задания заданоperformExitOptionsJobAction
значение, и задача завершается сбоем с условием выхода, указывающим значениеterminatejob
jobAction
.Свойство JobSchedulingError задано, если произошла ошибка планирования.
Задачи подготовки задания
Экземпляр задачи подготовки задания выполняется на каждом вычислительном узле при первом запуске задачи для задания. Задачу подготовки заданий можно рассматривать как шаблон задачи, при этом выполняется несколько экземпляров до количества узлов в пуле. Проверьте экземпляры задач подготовки задания, чтобы определить, были ли ошибки.
Api состояния задачи подготовки и выпуска заданий можно использовать для перечисления состояния выполнения всех экземпляров задач подготовки и выпуска заданий для указанного задания. Как и в других задачах, JobPreparationTaskExecutionInformation доступен с такими свойствами, как failureInfo
, exitCode
и result
.
При выполнении задачи подготовки задания задача, активировающая задачу подготовки задания, перемещается в taskStatepreparing
. Если задача подготовки задания завершается сбоем, триггерная задача возвращается к состоянию active
и не выполняется.
Если задача подготовки задания завершается сбоем, задача запуска задания не выполняется. Задание не завершено и зависло. Если нет других заданий с задачами, которые могут быть запланированы, пул может не использоваться.
Задачи отключения задания
Экземпляр задачи выпуска задания запускается при завершении задания на каждом узле, на котором выполняется задача подготовки задания. Проверьте экземпляры задач выпуска задания, чтобы определить, были ли ошибки.
Api состояния задачи подготовки и выпуска заданий можно использовать для перечисления состояния выполнения всех экземпляров задач подготовки и выпуска заданий для указанного задания. Как и в других задачах, JobReleaseTaskExecutionInformation доступен с такими свойствами, как failureInfo
, exitCode
и result
.
Если сбой одного или нескольких задач выпуска задания, задание по-прежнему completed
завершается и перемещается в состояние.
Сбои задач
Задачи задания могут завершиться ошибкой по следующим причинам:
- Командная строка задачи завершается ошибкой и возвращается с кодом выхода из ненулевого кода.
- Один или несколько
resourceFiles
, указанных для задачи, не загружают. - Один или несколько
outputFiles
, указанные для задачи, не передаются. - Истекшее время задачи превышает
maxWallClockTime
свойство, указанное в TaskConstraints.
Во всех случаях проверьте следующие свойства ошибок и сведения об ошибках:
Свойство TaskExecutionInformation содержит несколько свойств, которые предоставляют сведения об ошибке. TaskExecutionResult указывает, не удалось ли выполнить задачу по какой-либо причине и
exitCode
failureInfo
предоставить дополнительные сведения о сбое.Задача всегда перемещается в
completed
TaskState, выполняется ли она успешно или завершилась сбоем.
Рассмотрим влияние сбоев задач на задание и на все зависимости задач. Можно указать ExitConditions , чтобы настроить действия для зависимостей и задания.
- DependencyAction определяет, следует ли блокировать или запускать задачи, зависящие от неудачной задачи.
- JobAction определяет, приводит ли задача к отключению, завершению или без изменений.
Командная строка задачи
Командные строки задач не выполняются под оболочкой на вычислительных узлах, поэтому они не могут использовать собственные функции оболочки, такие как расширение переменной среды. Чтобы воспользоваться этими функциями, следует вызвать оболочку в командной строке. Дополнительные сведения см. в разделе "Расширение командной строки переменных среды".
Выходные данные командной строки задачи записываются в файлы stderr.txt и stdout.txt . Приложение также может записывать в файлы журнала для конкретного приложения. Обязательно реализуйте комплексную проверку ошибок для приложения, чтобы быстро обнаруживать и диагностировать проблемы.
Журналы задач
Если узел пула, выполняющий задачу, по-прежнему существует, вы можете получить и просмотреть файлы журнала задач. Несколько API разрешают перечисление и получение файлов задач, таких как File — Get From Task. Вы также можете просматривать файлы журналов для задачи или узла с помощью портал Azure.
В верхней части страницы обзора узла выберите " Отправить пакетные журналы".
На странице "Отправить журналы пакетной службы" выберите контейнер хранилища "Выбрать", выберите контейнер служба хранилища Azure для отправки, а затем нажмите кнопку "Начать отправку".
Вы можете просматривать, открывать или скачивать журналы на странице контейнера хранилища.
выходные файлы
Так как пулы пакетной службы и узлы пула часто являются временными, при непрерывном добавлении и удалении узлов рекомендуется сохранять файлы журналов при выполнении задания. Выходные файлы задач — удобный способ сохранения файлов журнала в службе хранилища Microsoft Azure. Дополнительные сведения можно найти в разделе Сохранение данных задачи в службе хранилища Azure с помощью API пакетной службы.
При каждой отправке файла пакетная служба записывает два файла журнала на вычислительный узел, fileuploadout.txt и fileuploaderr.txt. Для получения дополнительных сведений о конкретной ошибке можно проанализировать файлы журнала. Если отправка файла не была выполнена, например из-за того, что сама задача не могла выполниться, эти файлы журнала не существуют.
Следующие шаги
- Узнайте больше о заданиях и задачах пакетной службы, а также о задачах подготовки и выпуска заданий.
- Сведения об ошибках пула пакетной службы и узлов.