コード例 #1
0
        static void Main(string[] args)
        {
            var channelName      = "CartPreviewCreated";
            var producer         = new RedisProducer();
            var eventRaiserTasks = new List <Task>();

            var consumer = new RedisConsumer();
            var queue    = consumer.Consume(channelName);

            var messageCount = 0;

            queue.OnMessage(x =>
            {
                ClearCurrentConsoleLine();
                var content = $"<{x.Channel}>: {x.Message} delivered at {DateTime.Now.ToString("dd.MM.yyyy-HH:mm:ss")}>";
                Console.WriteLine(content);
                Console.WriteLine($"{++messageCount} messages delivered.");
                Console.SetCursorPosition(0, Console.CursorTop - 1);
            });

            for (int i = 0; i < 1000; i++)
            {
                eventRaiserTasks.Add(producer.ProduceAsync(channelName, $"ThrowTime:{DateTime.Now.ToString("dd.MM.yyyy-HH:mm:ss")} at order {i + 1}. with {Guid.NewGuid()}."));
            }
            Task.WhenAll();
            Console.ReadKey();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: zongu/RedisPubSub
        static void Main(string[] args)
        {
            try
            {
                //// 啟動redis發布訂閱中樞
                RedisFactory.Start(NoSqlService.RedisConnections, NoSqlService.RedisAffixKey, NoSqlService.RedisDataBase);
                ////訂閱關注Topics
                var consumer = new RedisConsumer(ConfigHelper.SubscribTopics, new PubSubDispatcher <RedisEventStream>(AutofacConfig.Container));
                consumer.Register();

                //// 發布事件
                RedisProducer.Publish("A", new AEvent()
                {
                    Message = $"{nameof(AEvent)}:{DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")}"
                });
                RedisProducer.Publish("B", new AEvent()
                {
                    Message = $"{nameof(BEvent)}:{DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")}"
                });
                RedisProducer.Publish("C", new AEvent()
                {
                    Message = $"{nameof(CEvent)}:{DateTime.Now.ToString("yyyy/MM/dd hh:mm:ss")}"
                });
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Console.Read();
        }
コード例 #3
0
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            AutofacConfig.RegisterContainer();

            var channels = ConfigHelper.RedisSubChannels.Split(',');

            var consumer = new RedisConsumer(
                channels,
                new PubSubDispatcher <RedisEventStream>());

            consumer.Start();

            Application.Run(new Form1());
        }