public void Send2Quere(string imagedata) { while (ResultImgQueue.IsFull(1000)) { Thread.Sleep(200); Log4NetHelper.Instance.Debug("发送Kafka数据量:" + ResultImgQueue.GetCount() + ",等待处理"); } if (!string.IsNullOrEmpty(imagedata)) { ResultImgQueue.AddToQueue(imagedata); } }
public void Initial() { _taskSend = Task.Run(() => { var options2 = new KafkaOptions(new Uri(_kafkaAddr)) { Log = new ConsoleLog() }; var producer = new Producer(new BrokerRouter(options2)) { BatchSize = 10, BatchDelayTime = TimeSpan.FromMilliseconds(2000) }; while (true) { try { // 取消任务判断 if (_tokenSource.IsCancellationRequested) { break; } string message = ResultImgQueue.GetFromQueue(); if (string.IsNullOrEmpty(message)) { Thread.Sleep(1000); continue; } else { producer.SendMessageAsync(_outputtopicName, new[] { new Message(message) }).Wait(); Log4NetHelper.Instance.Debug("发送Kafka数据成功:" + message); } } catch (Exception ex) { Log4NetHelper.Instance.Error("从队列发送Kafka数据错误:" + (ex.InnerException != null ? ex.InnerException.Message : ex.Message)); } Thread.Sleep(1000); } }, _tokenSource.Token); }