/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> void IDownstreamHandler.HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { if (message is DispatchCommand) _upstream[0].Invoke(new CommandCompleted((DispatchCommand) message)); else if (message is DispatchEvent) _upstream[0].Invoke(new EventCompleted((DispatchEvent) message)); // just ignore everything else. }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { _context = context; var msg = message as DispatchEvent; if (msg != null) { var batchId = _threadBatchIdMapper.GetBatchId(); if (batchId != Guid.Empty) { _storage.Hold(batchId, msg.DomainEvent); return; } } context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchEvent"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { _context = context; var msg = message as DispatchEvent; if (msg != null) { _queue.Enqueue(msg); // Not very much thread safe. if (Interlocked.Read(ref _currentWorkers) < _maxWorkers) { Interlocked.Increment(ref _currentWorkers); ThreadPool.QueueUserWorkItem(DispatchEventsNow); } } else if (message is Shutdown) { Close(); } }
public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { _context = context; var sendCmd = message as DispatchCommand; if (sendCmd != null) { EnqueueCommand(sendCmd); return; } if (message is Shutdown) { Close(); } if (message is StartHandlers) { StartWorker(); } context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { var msg = message as DispatchCommand; if (msg != null) { _storage.Add(msg); } if (message is StartHandlers) { context.SendDownstream(message); var commands = _storage.FindFailedCommands(DateTime.Now.AddSeconds(-5)); foreach (var command in commands) { context.SendDownstream(command); } return; } context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchEvent"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { _context = context; var msg = message as DispatchEvent; if (msg != null) { _queue.Enqueue(msg); // Not very much thread safe. if (Interlocked.Read(ref _currentWorkers) < _maxWorkers) { Interlocked.Increment(ref _currentWorkers); ThreadPool.QueueUserWorkItem(DispatchEventsNow); } } else if (message is Shutdown) { Close(); } }
public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { _context = context; var sendCmd = message as DispatchCommand; if (sendCmd != null) { EnqueueCommand(sendCmd); return; } if (message is Shutdown) { Close(); } if (message is StartHandlers) { StartWorker(); } context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { var msg = message as DispatchCommand; if (msg != null) { _storage.Add(msg); } if (message is StartHandlers) { context.SendDownstream(message); var commands = _storage.FindFailedCommands(DateTime.Now.AddSeconds(-5)); foreach (var command in commands) { context.SendDownstream(command); } return; } context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { var msg = message as DispatchCommand; if (msg != null) { try { _method.MakeGenericMethod(msg.Command.GetType()).Invoke(this, new object[] { msg.Command }); context.SendUpstream(new CommandCompleted(msg)); } catch (Exception err) { msg.AddFailedAttempt(); context.SendUpstream(new CommandFailed(msg, err)); return; } return; } context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { Invoked = true; context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { Invoked = true; context.SendDownstream(message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { _event.Set(); _handler(context, message); }
/// <summary> /// Send a message to the command handler /// </summary> /// <param name="context">my context</param> /// <param name="message">Message to send, typically <see cref="DispatchCommand"/>.</param> public void HandleDownstream(IDownstreamContext context, IDownstreamMessage message) { _event.Set(); _handler(context, message); }