Сделайте так, чтобы расписание пакетных заданий Azure не ожидало предыдущей итерации. - PullRequest
0 голосов
/ 29 октября 2019

У меня настроена служба пакетной службы Azure с расписанием заданий, которое запускается каждую минуту. Задача менеджера заданий создает 3-10 заданий в одном задании.

Иногда одна из этих задач в задании может выполняться очень долго, но обычно очень быстро. Если для выполнения одной из задач требуется много времени, следующая итерация задачи менеджера заданий в этом случае не начинается. Он в основном ожидает завершения всех задач предыдущей итерации.

Существует ли способ обеспечить, чтобы график заданий продолжал создавать версию задания каждую минуту, даже если все задачи из предыдущей итерации не имелибыло завершено?

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

Ответы [ 2 ]

1 голос
/ 30 октября 2019

Похоже, это больше касается вопроса разработки, AFAIK, Нет, повторяющиеся имена активных заданий не должны быть выполнимы с точки зрения z-пакета. (Я исправлюсь, если это вообще как-то выполнимо)

Хотя для дальнейшего осмысления этого вы можете прочитать различные рекомендации по дизайну через страницу технического обзора пакета Azure или сообщения типа:

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

0 голосов
/ 31 октября 2019

В настоящее время график работ может содержать не более одной активной работы в любой момент времени ( ссылка ), поэтому ожидаемое поведение ожидается.

Мы неесть любая простая функция, которую вы можете просто «включить» для одновременного выполнения заданий из одного расписания заданий - но у меня есть предложение:

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

Например,

  • В 10:03 в вашем расписании запускается создание задания processing-20191031-1003.
  • в 10: 04:00, ваш график работы вызывает создание задания processing-20191031-1004.
  • В 10:05, ваш график работы запускается для создания задания processing-20191031-1005.
  • и т. Д.

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

Поскольку ваши существующие заданияуже создать переменное количество задач (вы сказали 3-10 задач, выше), я надеюсь, чтоЭто не будет очень сложным изменением для вашего кода.

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

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