Остановка дистрибьютора от публикации сообщений уволенному работнику
У меня небольшая проблема с дистрибьютором NServiceBus, и это, вероятно, мое собственное невежество, но это то, что происходит -
Я имею -
а. 2 рабочих (серверных) процесса, работающих на 2 компьютерах
б. 1 Распространитель процесса размещения сообщений для работников
с. 1 клиентский процесс отправки сообщений дистрибьютору
Теперь все работает нормально, когда все серверы работают.
Скажем, теперь я остановил рабочий процесс № 1 так, что работает только рабочий процесс № 2. Теперь я жду некоторое время и затем начинаю публиковать сообщения дистрибьютору, и я замечаю, что некоторые сообщения неизменно попадают в очередь для рабочего процесса № 1 (процесс, который был остановлен).
Теперь я предполагаю, что это происходит потому, что перед выключением сервер указал дистрибьютору, что он готов, и дистрибьютор отвечал на эти управляющие сообщения.
Мой вопрос заключается в том, есть ли способ изящно закрыть работника, подключенного к дистрибьютору, сообщив ему, что в него больше не нужно ставить сообщения.
Благодарю.
1 ответ
Вы можете постепенно набирать количество рабочих потоков рабочего узла, отправляя ему сообщения ChangeNumberOfWorkerThread. В каталоге grid (я думаю) есть инструмент управления, который вы можете использовать, просто нужно войти в очередь дистрибьютора и в каждую рабочую очередь.