А насколько Nomad подойдет для задачи запуска и мониторинга постоянно повторяющихся тасков?
Требования такие:
1. Возможность генерировать очередь из тасков(джобов) динамически на основе данных в БД.
Т.е. чтобы можно было задать какой-то SQL фильтр, который достанет нужные айдишники/параметры из базы. Потом сформировать по общему шаблону командную строку того что будем запускать, подставляя данные из результата SQL-запроса. Т.е. чтоб был какой-то конструктор-шаблонизатор. Далее, досталось 100 записей - значит у нас 100 джобов (тасков) и надо их всех запустить по очереди на конкретном серваке. Вернее, можно и одновременно запускать, но только чтоб настраивался числовой лимит одновременно работающих джобов на конкретном хосте. Отработали все джобы - заново лезем в базу, и SQL-запросом отфильтровываем актуальные записи, и всё по новой. В идеале даже можно не ждать отработки всех джобов чтобы актуализировать текущую очередь, а постоянно обновлять список актуальных задач на лету из базы. Причем в основном это будут всегда одни и те же джобы, которые надо выполнять по кругу, и лишь иногда некоторые будут удалятся или добавляться новые. Т.е. простоя в стиле "висим и ждем задач" не планируется.
2. Возможность настраивать количество параллельно работающих джобов (например - не больше 5, остальные ждут в очереди).
3. Контейнеры не нужны, главное чтоб запускало просто через SSH, либо через какую-то свою ответную серверную часть на хосте.
4. Возможность мониторинга длительно работающих джобов (месяцами) и их перезапуск при падении.
5. Желательно веб/гуй интерфейс на "командном центре" для настройки и наблюдения за всеми процессами.
6. Если сам автоматизатор (фреймворк) остановили, то после перезапуска он сам должен понимать какие джобы в текущий момент еще работают на хосте и не запускал их дубликаты. Т.е чтобы восстанавливал актуальное состояние очереди и синхронизировал ее с тем что на серваке происходит.