Example #1
0
        public void TestKafka()
        {
            var opt = new KafkaMq();

            opt.Send();
            opt.Get();
        }
        public void ParallelPubAndSub()
        {
            if (IsCI())
            {
                return;
            }

            var count   = 0;
            var options = DistributeSpiderProvider.Value.GetRequiredService <KafkaOptions>();
            var logger  = DistributeSpiderProvider.Value.GetRequiredService <ILogger <KafkaMq> >();
            var mq      = new KafkaMq(options, logger);

            mq.Subscribe <string>("ParallelPubAndSub", msg => { Interlocked.Increment(ref count); });

            Parallel.For(0, 100, async i =>
            {
                await mq.PublishAsync("ParallelPubAndSub", new MessageData <string>()
                {
                    Data = "a"
                });
            });
            var j = 0;

            while (count < 100 && j < 150)
            {
                Thread.Sleep(500);
                ++j;
            }

            Assert.Equal(100, count);
        }
Example #3
0
        static void Main(string[] args)
        {
            var MqServer = new MqFactory();
            var i        = 0;

            while (i < 100)
            {
                var data = MqServer.Get("测试主题", false);
                if (data == null)
                {
                    Console.WriteLine(i);
                    break;
                }
                else
                {
                    i++;
                    MqServer.Ack(data.Tag);
                }
            }
            Console.WriteLine("RabbitMQ 本次总共处理:{0}条记录", i);

            var kafka = new KafkaMq();

            //kafka.Send();
            kafka.Get();

            Console.ReadKey();
        }
        public async Task PubAndUnSub()
        {
            if (IsCI())
            {
                return;
            }

            var count   = 0;
            var options = DistributeSpiderProvider.Value.GetRequiredService <KafkaOptions>();
            var logger  = DistributeSpiderProvider.Value.GetRequiredService <ILogger <KafkaMq> >();
            var mq      = new KafkaMq(options, logger);

            mq.Subscribe <string>("PubAndUnSub", msg => { Interlocked.Increment(ref count); });

            var i = 0;

            Task.Factory.StartNew(async() =>
            {
                for (; i < 50; ++i)
                {
                    await mq.PublishAsync("PubAndUnSub", new MessageData <string>()
                    {
                        Data = "a"
                    });
                    await Task.Delay(100);
                }
            }).ConfigureAwait(false).GetAwaiter();
            await Task.Delay(1500);

            mq.Unsubscribe("PubAndUnSub");

            while (i < 50)
            {
                await Task.Delay(100);
            }

            Assert.True(count < 100);
        }