Микросервисы заданий Cron

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

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

Я не понимаю, как приспособить эту работу cron к архитектуре MS. Нужно ли мне иметь другой сервер, выполняющий только эту работу cron?


person Nitish Bhardwaj    schedule 13.06.2018    source источник
comment
у вас есть служба, которой принадлежит домен для этой работы. Таким образом, одним из способов было бы запланировать это там. В противном случае вы можете захотеть иметь новую службу с этой ответственностью в системе.   -  person Jocke    schedule 13.06.2018
comment
У меня может быть новая услуга с другим доменом. Но у микросервиса обычно есть конечные точки, которые должны быть доступны. Эта служба будет просто приложением весенней загрузки, которое не будет доступно из какой-либо другой службы. Я знаю, что это можно сделать, но просто хотел убедиться, что это правильный способ сделать это.   -  person Nitish Bhardwaj    schedule 14.06.2018


Ответы (2)


В зависимости от платформы (например, cf, k8s..), на которой вы организуете пакетные задания в SCDF, вы можете написать простое загрузочное приложение на основе Quartz, которое может взаимодействовать с конечными точками REST SCDF для планирования определений задач, определенных в SCDF.

Существует несколько онлайн-литератур по решению Quartz + Boot.

Мы также работаем над интеграцией собственного планировщика для Cloud Foundry (через Планировщик PCF). Как только он будет готов, вы сможете планировать (например, cron-выражения) для задач из панели инструментов SCDF.

person Sabby Anandan    schedule 15.06.2018

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

person Marx    schedule 23.05.2019