Я работаю над приложением Service Fabric, в котором я запускаю свое приложение, содержащее набор основных веб-API ASP.NET. Теперь, когда я запускаю свое приложение в своем локальном кластере сервисной фабрики, который настроен с 5 узлами, приложение работает успешно, и я могу отправлять почтовые запросы к открытым веб-API. На самом деле я хочу запустить код, работающий на одном узле кластера, с разными почтовыми запросами к разным открытым API на этом конкретном узле.
Для дальнейшего объяснения, например, на узле «0» есть API, который принимает почтовый запрос и выполняет задание из службы exe, работающей на узле «0», а также есть API, который прерывает текущее задание. Теперь, когда я запрашиваю выполнение задания, оно начинает выполняться на узле «0», но когда я пытаюсь прервать задание, кластер сервисной фабрики перенаправляет запрос на другой узел, например, узел «1». В результате я не смог прервать запущенное задание, потому что на узле «1» нет запущенного задания. Я не знаю, как справиться с этой ситуацией.
Для этой ситуации существуют решения, такие как поддержка хранилища, в котором будет храниться некоторый уникальный идентификатор, прежде чем начать обработку задания и вернуть идентификатор вызывающей стороне. Теперь, когда кто-то хочет прервать задание, он / она вызывает API, отправляющий идентификатор для прерывания, но здесь снова проблема заключается в том, что внутри моих запущенных служб работает несколько потоков. Я хочу прервать те текущие потоки. Эти потоки находятся только на том конкретном узле, на котором выполняется задание. так что каким-то образом я должен добраться до этого конкретного узла.
Для состояний я использую службу Statefull типа ASP.Net Core Web API и запускаю приложение на 5 узлах моего локального кластера фабрики служб.
Пожалуйста, предложите, что должно быть лучшим подходом.