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); } }
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(); } }
/// <summary> /// 添加sql运行信息 /// </summary> /// <param name="runtimeSqlModel"></param> public static void AddMessage(RuntimeSqlModel runtimeSqlModel) { _MessageQueue.EnqueueMessage(runtimeSqlModel); }