Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }