Exemple #1
0
 /// <summary>
 /// 保存事件,用于重试
 /// </summary>
 /// <param name="element">执行元素</param>
 /// <param name="exception">异常信息</param>
 /// <param name="event">事件</param>
 public void EnqueueEvent(IEvent @event, EventExcutingElement element, Exception exception)
 {
     this.storager.Enqueue(element.EventContext, exception, @event, element.EventHandlerType);
     if (this.IsWaited)
     {
         this.Pulse();
     }
 }
Exemple #2
0
            protected override bool ExcutingElementFilter(EventExcutingElement element)
            {
                if (element.EventHandlerType != this.eventHandlerType)
                {
                    return(false);
                }

                return(base.ExcutingElementFilter(element));
            }
 public override void MakeEventHandlerInvoke <TEvent>(TEvent e, EventExcutingElement element)
 {
     try
     {
         base.MakeEventHandlerInvoke(e, element);
     }
     catch (Exception ex)
     {
         this.eventRecovery.EnqueueEvent(e, element, ex);
         throw new Exception("", ex);
     }
 }