private void DoPublish(object message) { try { _routeMessages.Route(message); } finally { _postCommitQueue.Pop(DoPublish); } }
public async Task exceptions_thrown_by_router_dont_break_other_messages() { _router.Route(_sut.Envelopes[0]).Throws(new Exception("router exception")); _sut.Add(); _sut.Subscribe(_router); _sut.Start(); _sut.Next(); await _router.Received(2).Route(Arg.Any <EnvelopeFromClient>()); _sut.Handled.Should().Be(_sut.Envelopes[1]); }
protected void Callback(object state) { var items = GetMessages(); items.ForEach(async d => { try { await _server.Route(d).ConfigureFalse(); MarkAsHandled(d); } catch (Exception ex) { this.LogError(ex); } }); }