Мы разрабатываем веб-API с использованием .Net Core. Для выполнения фоновых задач мы использовали размещенные сервисы.
Система размещена в среде AWS Beantalk с балансировщиком нагрузки. Таким образом, на основе нагрузки Beanstalk создает / удаляет новые экземпляры системы.
Наша проблема в том, что поскольку фоновые службы также работают внутри API, когда балансировщик нагрузки увеличивает экземпляры, количество фоновых служб также увеличивается, иесть возможность выполнить одну и ту же задачу несколько раз. В идеале должен быть только один экземпляр фоновых сервисов.
Одним из способов решения этой проблемы является прекращение выполнения фоновых служб в среде с балансировкой нагрузки и выделение среды единственного экземпляра без балансировки нагрузки только для фоновых служб.
Это немного уродливое решение. Итак,
1) Есть ли лучшее решение для этого?
2) Есть ли способ идентифицировать основной экземпляр в среде с балансировкой нагрузки? Если это так, я могу условно зарегистрировать размещенные службы.
Любая помощь действительно приветствуется.
Спасибо