示例#1
0
        public void Stop()
        {
            //_timer.Stop();
            var lines = new string[] { "Inside stop" };

            File.AppendAllLines(@"C:\Temp\Demos\Heartbeat.txt", lines);

            queueConsumer.Dispose();
        }
示例#2
0
文件: Form1.cs 项目: ruleechen/DQueue
 private void Form1_FormClosing(object sender, FormClosingEventArgs e)
 {
     _consumer.Dispose();
 }
示例#3
0
 public void Dispose()
 {
     queueConsumer?.Dispose();
 }
示例#4
0
        static void Main(string[] args)
        {
            var consumers = new List <QueueConsumer <SampleMessage> >();
            var producer  = new QueueProducer();

            producer.IgnoreHash = true;

            var completeCount = 0;
            var timeoutCount  = 0;
            var sendData      = true;

            for (var i = 0; i < 10; i++)
            {
                var consumer = new QueueConsumer <SampleMessage>("Queue" + i, 10);
                consumers.Add(consumer);

                consumer.Receive((context) =>
                {
                    Thread.Sleep(100);

                    if (!context.Cancellation.IsCancellationRequested)
                    {
                        Console.WriteLine(string.Format("receiver 1, thread {0} -> [{1}]", Task.CurrentId, context.Message.Text));
                    }
                });

                consumer.Receive((context) =>
                {
                    Thread.Sleep(200);

                    if (!context.Cancellation.IsCancellationRequested)
                    {
                        Console.WriteLine(string.Format("receiver 2, thread {0} -> [{1}]", Task.CurrentId, context.Message.Text));
                    }
                });

                consumer.OnComplete((context) =>
                {
                    completeCount++;

                    foreach (var ex in context.Exceptions)
                    {
                        Console.WriteLine("excpetion: [" + ex.Message + "] [" + context.Message.Text + "]");
                    }
                });

                consumer.OnTimeout((context) =>
                {
                    timeoutCount++;
                    Console.WriteLine("timeout: [" + context.Message.Text + "]");
                });

                if (sendData)
                {
                    for (var j = 0; j < 10; j++)
                    {
                        var msg = new SampleMessage
                        {
                            Text = "msg" + i.ToString() + "-" + j.ToString()
                        };

                        producer.Send("Queue" + i, msg);

                        Console.WriteLine(string.Format("send -> [{0}]", msg.Text));
                    }
                }
            }

            while (true)
            {
                var text = Console.ReadLine();

                if (text == "exit")
                {
                    break;
                }
                else if (text == "complete")
                {
                    Console.WriteLine(completeCount);
                    continue;
                }
                else if (text == "timeout")
                {
                    Console.WriteLine(timeoutCount);
                    continue;
                }

                producer.Send("Queue0", new SampleMessage
                {
                    Text = text
                });

                Console.WriteLine(string.Format("send -> [{0}]", text));
            }

            foreach (var consumer in consumers)
            {
                consumer.Dispose();
            }
        }