public Message WaitMessage(Message.Categories type, CancellationToken ct) { try { return(PendingInboundMessages.Take(ct)); } catch (ThreadAbortException exc) { // Silo may be shutting-down, so downgrade to verbose log logger.Debug(ErrorCode.ProxyClient_ThreadAbort, "Received thread abort exception -- exiting. {0}", exc); Thread.ResetAbort(); return(null); } catch (OperationCanceledException exc) { logger.Debug(ErrorCode.ProxyClient_OperationCancelled, "Received operation cancelled exception -- exiting. {0}", exc); return(null); } catch (ObjectDisposedException exc) { logger.Debug(ErrorCode.ProxyClient_OperationCancelled, "Received Object Disposed exception -- exiting. {0}", exc); return(null); } catch (InvalidOperationException exc) { logger.Debug(ErrorCode.ProxyClient_OperationCancelled, "Received Invalid Operation exception -- exiting. {0}", exc); return(null); } catch (Exception ex) { logger.Error(ErrorCode.ProxyClient_ReceiveError, "Unexpected error getting an inbound message", ex); return(null); } }
public Message WaitMessage(Message.Categories type, CancellationToken ct) { try { Message msg = PendingInboundMessages.Take(); #if TRACK_DETAILED_STATS if (StatisticsCollector.CollectQueueStats) { queueTracking.OnDeQueueRequest(msg); } #endif return(msg); } catch (ThreadAbortException tae) { // Silo may be shutting-down, so downgrade to verbose log logger.Verbose(ErrorCode.ProxyClient_ThreadAbort, "Received thread abort exception -- exiting. {0}", tae); Thread.ResetAbort(); return(null); } catch (OperationCanceledException oce) { logger.Verbose(ErrorCode.ProxyClient_OperationCancelled, "Received operation cancelled exception -- exiting. {0}", oce); return(null); } catch (Exception ex) { logger.Error(ErrorCode.ProxyClient_ReceiveError, "Unexpected error getting an inbound message", ex); return(null); } }
internal IncomingMessageAgent(Message.Categories cat, IMessageCenter mc, ActivationDirectory ad, OrleansTaskScheduler sched, Dispatcher dispatcher) : base(cat.ToString()) { category = cat; messageCenter = mc; directory = ad; scheduler = sched; this.dispatcher = dispatcher; OnFault = FaultBehavior.RestartOnFault; }
internal IncomingMessageAgent(Message.Categories cat, IMessageCenter mc, ActivationDirectory ad, OrleansTaskScheduler sched, Dispatcher dispatcher) : base(cat.ToString()) { category = cat; messageCenter = mc; directory = ad; scheduler = sched; this.dispatcher = dispatcher; OnFault = FaultBehavior.RestartOnFault; }
/// <inheritdoc /> public Message WaitMessage(Message.Categories type) { try { return(this.messageQueues[(int)type].Take()); } catch (InvalidOperationException) { return(null); } }
public Message WaitMessage(Message.Categories type, CancellationToken ct) { try { if (ct.IsCancellationRequested) { return(null); } // Don't pass CancellationToken to Take. It causes too much spinning. Message msg = PendingInboundMessages.Take(); #if TRACK_DETAILED_STATS if (StatisticsCollector.CollectQueueStats) { queueTracking.OnDeQueueRequest(msg); } #endif return(msg); } #if !NETSTANDARD catch (ThreadAbortException exc) { // Silo may be shutting-down, so downgrade to verbose log logger.Verbose(ErrorCode.ProxyClient_ThreadAbort, "Received thread abort exception -- exiting. {0}", exc); Thread.ResetAbort(); return(null); } #endif catch (OperationCanceledException exc) { logger.Verbose(ErrorCode.ProxyClient_OperationCancelled, "Received operation cancelled exception -- exiting. {0}", exc); return(null); } catch (ObjectDisposedException exc) { logger.Verbose(ErrorCode.ProxyClient_OperationCancelled, "Received Object Disposed exception -- exiting. {0}", exc); return(null); } catch (InvalidOperationException exc) { logger.Verbose(ErrorCode.ProxyClient_OperationCancelled, "Received Invalid Operation exception -- exiting. {0}", exc); return(null); } catch (Exception ex) { logger.Error(ErrorCode.ProxyClient_ReceiveError, "Unexpected error getting an inbound message", ex); return(null); } }
/// <inheritdoc /> public Message WaitMessage(Message.Categories type, CancellationToken cancellationToken) { try { return(this.messageQueues[(int)type].Take(cancellationToken)); } catch (OperationCanceledException) { return(null); } catch (InvalidOperationException) { return(null); } }
public Message WaitMessage(Message.Categories type) { try { Message msg = messageQueues[(int)type].Take(); #if TRACK_DETAILED_STATS if (StatisticsCollector.CollectQueueStats) { queueTracking[(int)msg.Category].OnDeQueueRequest(msg); } #endif return(msg); } catch (InvalidOperationException) { return(null); } }
internal IncomingMessageAgent( Message.Categories cat, IMessageCenter mc, ActivationDirectory ad, OrleansTaskScheduler sched, Dispatcher dispatcher, MessageFactory messageFactory, ExecutorService executorService, ILoggerFactory loggerFactory) : base(cat.ToString(), executorService, loggerFactory) { category = cat; messageCenter = mc; directory = ad; scheduler = sched; this.dispatcher = dispatcher; this.messageFactory = messageFactory; OnFault = FaultBehavior.RestartOnFault; }
internal IncomingMessageAgent( Message.Categories cat, IMessageCenter mc, ActivationDirectory ad, OrleansTaskScheduler sched, Dispatcher dispatcher, MessageFactory messageFactory, ILoggerFactory loggerFactory) : base(cat.ToString(), loggerFactory) { category = cat; messageCenter = mc; directory = ad; scheduler = sched; this.dispatcher = dispatcher; this.messageFactory = messageFactory; OnFault = FaultBehavior.RestartOnFault; messageCenter.RegisterLocalMessageHandler(cat, ReceiveMessage); }
public void RegisterLocalMessageHandler(Message.Categories category, Action <Message> handler) { this.messageHandlers[(int)category] = handler; }
public ChannelReader <Message> GetReader(Message.Categories type) => PendingInboundMessages.Reader;
public Message WaitMessage(Message.Categories type, CancellationToken ct) { return(InboundQueue.WaitMessage(type)); }
public void RegisterLocalMessageHandler(Message.Categories category, Action <Message> handler) { }
public ChannelReader <Message> GetReader(Message.Categories type) => this.messageQueues[(int)type].Reader;