У меня есть C# Windows Сервис, который установлен на 3 разных серверах. Все эти 3 службы регистрируются в одном центре событий, который имеет 8 разделов. В каком-то смысле эти 3 сервера являются моими потребителями. После запуска службы windows несколько разделов могут быть инициализированы на разных серверах. Насколько я заметил, эта инициализация всегда случайна.
Скажем, сценарий инициализации выглядит следующим образом:
Сервер1: Раздел 0,1,2
Сервер2: Раздел 3,4
Сервер3: Раздел 5,6,7
Эта инициализация происходит с помощью этого кода:
public Task OpenAsync(PartitionContext context)
{
Console.WriteLine($"SimpleEventProcessor initialized. Partition: '{context.PartitionId}'");
return Task.CompletedTask;
}
Мое требование: несмотря на наличие нескольких разделов, я хочу инициализировать только один раздел для каждого потребителя / сервера. Есть ли способ ограничить инициализацию всех разделов?
Я подумал, что в сборке может быть какая-то функция, которая подсчитывает и сообщает номер уже инициализированных разделов. Так что я могу использовать, чтобы проверить, является ли значение «1», а затем пропустить инициализацию других разделов. Но я не мог найти такую функцию.
Поскольку у меня 3 сервера, я хочу инициализировать только 3 раздела, по одному на каждом сервере. Остальные 5 будут бесплатными и не будут получать никаких сообщений. Они могут быть использованы в будущем, когда количество серверов увеличится.
Возможен ли этот сценарий?