작업자가 Rebus 대기열에서 더 많은 작업/메시지를 가져 오지 못하도록하는 방법이 있는지 알아 내려고했습니다. 내 GUI를 통해 작업자를 "비활성화"하여 현재 작업중인 작업을 종료하고 더 많은 작업을 중단 할 수 있기를 원합니다. 그런 다음 작업을 다시 시작하기를 원한다면 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