Как лучше всего отслеживать и показывать результаты заданий Asyn c (например, EMR & AWS glue), выполнение которых занимает 20-30 минут - PullRequest
0 голосов
/ 08 января 2020

У меня есть работа для моей программы, выполнение которой занимает много времени. Теперь я хочу показать статус этой работы моему интерфейсу после ее завершения. Я нашел два решения этой проблемы:

  1. Выполните вызов API в конце 30-минутного задания, чтобы обновить состояние завершения задания. Это хорошо, потому что он может дать дополнительную информацию о том, что произошло в работе, но имеет недостаток в том, что если что-то пойдет не так, есть шанс, что код, который вызывает API, никогда не произойдет, и, следовательно, статус никогда не обновится.
  2. Постоянно следить за выполнением этой задачи после ее запуска. Потратьте некоторое время l oop и продолжайте проверять, выполнено ли задание. Это хороший подход, так как мы почти всегда можем получить правильный статус задачи, но часто мы можем видеть только высокий уровень да / нет здесь, вместо того, чтобы видеть детализированные детали выполнения, которые могут быть доступны.

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

1 Ответ

2 голосов
/ 09 января 2020

Использование AWS Шаговые функции в качестве безсерверного конечного автомата. Поддерживается непосредственное взаимодействие с кучей сервисов https://docs.aws.amazon.com/en_us/step-functions/latest/dg/connect-supported-services.html

...