Запрещение дистрибьютору публиковать сообщения уволенному работнику - PullRequest
1 голос
/ 23 июля 2010

У меня небольшая проблема с дистрибьютором NServiceBus, и это, вероятно, мое собственное невежество, но это то, что происходит -

У меня есть -
а. 2 рабочих (серверных) процесса, работающих на 2 компьютерах
б. 1 Распространитель процесса публикации сообщений для работников
с. 1 Процесс клиента отправляет сообщения дистрибьютору

Теперь все работает нормально, когда все серверы запущены и работают.

Скажем, теперь я остановил рабочий процесс № 1 так, что работает только рабочий процесс № 2. Теперь я жду некоторое время, а затем начинаю отправлять сообщения дистрибьютору, и я замечаю, что некоторые сообщения неизменно попадают в очередь для рабочего процесса № 1 (процесс, который был остановлен).

Теперь я предполагаю, что это происходит потому, что перед выключением сервер указал дистрибьютору, что он готов, и дистрибьютор отвечал на эти управляющие сообщения.

Мой вопрос заключается в том, есть ли способ изящно закрыть работника, подключенного к дистрибьютору, сообщив ему, что больше сообщений не должно быть в очереди к нему.

Спасибо.

1 Ответ

2 голосов
/ 23 июля 2010

Вы можете постепенно набирать количество рабочих потоков рабочего узла, отправляя ему сообщения ChangeNumberOfWorkerThread. В каталоге grid (я думаю) есть инструмент управления, который вы можете использовать, просто нужно войти в очередь дистрибьютора и в каждую рабочую очередь.

...