Я пытался выяснить, есть ли способ приостановить работу от получения большего количества заданий/сообщений из очереди Rebus? Я хочу, чтобы «отключить» рабочего через мой графический интерфейс, чтобы он завершил работу, в которой он работает в данный момент (если есть), а затем прекращает принимать больше заданий. Тогда, если я хочу, чтобы он снова начал выполнять задания, я сигнализирую об этом через gui.Приостановить работника от получения сообщений из очереди
Моя установка рабочей для Ребуса выглядит следующим образом:
private void SetupRebus(int numberOfWorkers, string messageName)
{
_adapter = new BuiltinContainerAdapter();
Configure.With(_adapter)
.Logging(l => l.Log4Net())
.Transport(t => t.UseSqlServer(_connectionString, _inputQueue, "error")
.EnsureTableIsCreated())
.Events(x => x.AfterMessage += ((bus, exception, message) => SendWorkerFinishedJob(exception, message)))
.Events(x => x.BeforeMessage += (bus, message) => SignalWorkerStartedJob(message))
.Behavior(x => x.SetMaxRetriesFor<Exception>(0))
.CreateBus().Start(numberOfWorkers);
Log.Info(string.Format("Starting to listen for messages of type {0} from queue {1} queue in {2}", messageName, _inputQueue, _connectionString));
}
Спасибо за быстрый ответ! – jopa