コード例 #1
0
 public MessageContext(object message, string id = null)
 {
     EqueueMessage = new EQueueMessage();
     SentTime      = DateTime.Now;
     Message       = message;
     if (!string.IsNullOrEmpty(id))
     {
         MessageId = id;
     }
     else if (message is IMessage)
     {
         MessageId = ((IMessage)message).Id;
     }
     else
     {
         MessageId = ObjectId.GenerateNewId().ToString();
     }
     ToBeSentMessageContexts = new List <IMessageContext>();
     if (message is IMessage iMessage)
     {
         Topic = iMessage.GetTopic();
         Tags  = iMessage.Tags;
     }
     MessageOffset = new MessageOffset();
 }
コード例 #2
0
ファイル: HandledEvent.cs プロジェクト: RaychZhang/IFramework
 public HandledEvent(string id, string subscriptionName, MessageOffset messageOffset, DateTime handledTime)
 {
     Id = id;
     SubscriptionName = subscriptionName;
     MessageOffset    = messageOffset;
     HandledTime      = handledTime;
 }
コード例 #3
0
 public EmptyMessageContext(IMessage message)
 {
     SentTime      = DateTime.Now;
     Message       = message;
     MessageId     = message.Id;
     MessageOffset = new MessageOffset();
 }
コード例 #4
0
        /// <summary>
        /// </summary>
        /// <param name="messageOffset"></param>
        protected virtual void FinishConsumingMessage(MessageOffset messageOffset)
        {
            var slidingDoor = SlidingDoors.TryGetValue(messageOffset.SlidingDoorKey);

            if (slidingDoor == null)
            {
                throw new Exception("partition slidingDoor not exists");
            }
            slidingDoor.RemoveOffset(messageOffset);
        }
コード例 #5
0
 private void CommitOffset(MessageOffset messageOffset)
 {
     try
     {
         CommitOffsetAsync(messageOffset.Broker,
                           messageOffset.Topic,
                           messageOffset.Partition,
                           messageOffset.Offset)
         .ContinueWith(t =>
         {
             if (t.IsFaulted)
             {
                 Logger.LogError(t.Exception, $"CommitOFfsetAsync failed");
             }
         });
     }
     catch (Exception e)
     {
         Logger.LogError(e, $"CommitOffset failed {messageOffset.ToJson()}");
     }
 }
コード例 #6
0
 public MessageContext(EQueueMessage equeueMessage, MessageOffset messageOffset)
 {
     EqueueMessage           = equeueMessage;
     ToBeSentMessageContexts = new List <IMessageContext>();
     MessageOffset           = messageOffset;
 }
コード例 #7
0
 public MessageContext(RabbitMQMessage rabbitMQMessage, MessageOffset deliveryTag)
 {
     RabbitMQMessage         = rabbitMQMessage;
     ToBeSentMessageContexts = new List <IMessageContext>();
     MessageOffset           = deliveryTag;
 }
コード例 #8
0
ファイル: HandledEvent.cs プロジェクト: RaychZhang/IFramework
 public FailHandledEvent(string id, string subscriptionName, MessageOffset messageOffset, DateTime handledTime, Exception e)
     : base(id, subscriptionName, messageOffset, handledTime)
 {
     Error      = e.GetBaseException().Message;
     StackTrace = e.StackTrace;
 }
コード例 #9
0
 public MessageContext(KafkaMessage kafkaMessage, string topic, int partition, long offset)
 {
     KafkaMessage  = kafkaMessage;
     MessageOffset = new MessageOffset(null, topic, partition, offset);
 }
コード例 #10
0
 public EmptyMessageContext()
 {
     MessageOffset = new MessageOffset();
 }
コード例 #11
0
ファイル: HandledEvent.cs プロジェクト: RaychZhang/IFramework
 public HandledEvent(string id, string subscriptionName, MessageOffset messageOffset, DateTime handledTime)
     : base(id, subscriptionName, messageOffset, handledTime)
 {
 }
コード例 #12
0
ファイル: HandledEvent.cs プロジェクト: RaychZhang/IFramework
 public HandledEventBase(string id, string subscriptionName, MessageOffset messageOffset, DateTime handledTime)
     : base(id, subscriptionName, messageOffset, handledTime)
 {
     EventId = id;
     Id      = $"{EventId}_{subscriptionName}";
 }