コード例 #1
0
ファイル: Program.cs プロジェクト: ndonze/Messaging
        static void Main(string[] args)
        {
            var workerId = Guid.NewGuid();
            SubscribeToWorkReceived(workerId);

            var workerAvailable = new WorkerAvailable { MessageId = Guid.NewGuid(), WorkerId = workerId };
            Publish(Channels.WorkerAvailable, workerAvailable.ToString());

            Console.ReadLine();
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: ndonze/Messaging
        public static void SubscribeToWorkReceived(Guid workerId)
        {
            Action<string, string> onWorkReceived = (channel, msg) =>
            {
                var work = JsonSerializer.DeserializeFromString<Work>(msg);
                Console.WriteLine("[{0}] Performing work: {1}",
                    DateTime.Now.ToShortTimeString(),
                    work.Message);

                Thread.Sleep(10000);

                var workComplete = new WorkComplete { MessageId = Guid.NewGuid(), CorrelationId = work.MessageId };
                Publish(Channels.WorkComplete, workComplete.ToString());

                var workerAvailable = new WorkerAvailable { MessageId = Guid.NewGuid(), WorkerId = workerId };
                Publish(Channels.WorkerAvailable, workerAvailable.ToString());
            };

            Task.Factory.StartNew(() => Subscribe(onWorkReceived, workerId.ToString()));
        }