Выполнение кода только на одном из запущенных инстансов nodejs сервиса?
Разрабатываю сервис на nodejs, который запускается в несколько инстансов. Есть функция, которая должна выполняться в фоне раз в N минут (сделать запрос к стороннему апи и сохранить результат).
Из-за того что сервис запущен в несколько инстансов, запрос к стороннему апи вызывается несколько раз. Как можно решить эту проблему, учитывая что:
- Нужна гарантия что скрипт выполниться в условиях, когда любой из инстансов может умереть (нельзя завязываться на одном "мастер-инстансе", тк он тоже может умереть).
- Нужна гарантия, что только на одном инстансе отработает функция.
Зависит от того, на чем бежит сервис.
В Кубернетисе есть "распределенный cronjob", то же самое в AWS ECS насколько помню.
Если запускать без контейнеров, то БД или очередь можно использовать для этого.