Beispiel #1
0
 public void BatchStoreMessageAsync(IQueue queue, IEnumerable <Message> messages, Action <BatchMessageLogRecord, object> callback, object parameter, string producerAddress)
 {
     lock (_lockObj)
     {
         var recordList = new List <MessageLogRecord>();
         foreach (var message in messages)
         {
             var record = new MessageLogRecord(
                 queue.Topic,
                 message.Code,
                 message.Body,
                 queue.QueueId,
                 queue.NextOffset,
                 message.CreatedTime,
                 DateTime.Now,
                 message.Tag,
                 producerAddress ?? string.Empty,
                 null,
                 null);
             recordList.Add(record);
             queue.IncrementNextOffset();
         }
         var batchRecord = new BatchMessageLogRecord(recordList, callback, parameter);
         _batchMessageBufferQueue.EnqueueMessage(batchRecord);
     }
 }
Beispiel #2
0
        public void BufferQueue_Test()
        {
            var r     = 0;
            var queue = new BufferQueue <int>("q1", 2, v =>
            {
                r = v;
            });

            queue.EnqueueMessage(1);
            queue.EnqueueMessage(2);
            queue.EnqueueMessage(3);
            queue.EnqueueMessage(4);
            queue.EnqueueMessage(5);

            Assert.True(r > 0);
        }
 public void StoreMessageAsync(IQueue queue, Message message, Action <MessageLogRecord, object> callback, object parameter)
 {
     lock (_lockObj)
     {
         var record = new MessageLogRecord(
             message.Topic,
             message.Code,
             message.Body,
             queue.QueueId,
             queue.NextOffset,
             message.CreatedTime,
             DateTime.Now,
             message.Tag,
             callback,
             parameter);
         _bufferQueue.EnqueueMessage(record);
         queue.IncrementNextOffset();
     }
 }
Beispiel #4
0
 /// <summary>
 /// 添加sql运行信息
 /// </summary>
 /// <param name="runtimeSqlModel"></param>
 public static void AddMessage(RuntimeSqlModel runtimeSqlModel)
 {
     _MessageQueue.EnqueueMessage(runtimeSqlModel);
 }