Обнаружение окончания пакетного задания Azure

В своем приложении я создаю пакетное задание Azure. Это приложение Node, и я использую клиент узла Azure-batch, но я также могу использовать REST, я не думаю, что это имеет значение. Однако я не могу переключиться на клиент C #.

Я ожидаю, что задание будет завершено через несколько секунд, и я хочу приостановить выполнение кода до тех пор, пока пакетное задание не будет завершено, но Я не уверен, как определить конец задания, не опрашивая API статуса задания . Ни клиент Node, ни REST API не предоставляют такую ​​функциональность. Я думал, что могу зарегистрироваться на какое-то мероприятие, но не смог найти ничего подобного. Есть задания задачи по выпуску, но я не уверен, смогу ли я добиться этого с их помощью.

Есть идеи, как можно определить конец пакетного задания Azure из моего приложения?


person Avius    schedule 23.01.2019    source источник


Ответы (1)


Один из способов сделать это - после того, как вы добавите свои задачи в задание, установите для свойства onAllTasksComplete задания значение «terminatejob».

Затем вы можете опросить API Job-Get и проверить свойство состояния задания, когда задание будет завершено (https://docs.microsoft.com/en-us/rest/api/batchservice/job/get#jobstate или https://docs.microsoft.com/en-us/javascript/api/azure-batch/job?view=azure-node-latest#get-string--object-).

person brklein    schedule 23.01.2019
comment
Да, я имел это в виду, но это означает, что мне нужно провести опрос. Кроме того, в моем вопросе была опечатка, я написал объединение вместо опроса:] есть идеи, как это сделать без опроса? - person Avius; 24.01.2019
comment
Я истолковал: «Ни клиент Node, ни REST API не предоставляют такую ​​функциональность». поскольку не реализуют функциональность опроса / состояния. Я лично не могу придумать каких-либо неуловимых способов строго через Batch для обнаружения этого на основе событий. - person brklein; 24.01.2019