コード例 #1
0
ファイル: Program.cs プロジェクト: amazingfly/workerDotNet
        static void Main(string[] args)
        {
            BoltSDK.WorkerTools b = new BoltSDK.WorkerTools();
            //b.CreateChannel();
            var ip      = "localhost";
            var factory = new ConnectionFactory()
            {
                Uri = "amqp://*****:*****@" + ip
            };

            using (var connection = factory.CreateConnection())
                using (var channel = WorkerTools.CreateChannel(connection))
                {
                    var consumer = WorkerTools.ConsumeCommand("parseKeywords", channel);
                    WorkerTools.ConsumeCommand("fetchPage", channel, consumer);

                    while (true)
                    {
                        var ea = (BasicDeliverEventArgs)consumer.Queue.Dequeue();

                        var payload = WorkerTools.StartWork(ea);

                        try
                        {
                            if (ea.RoutingKey == "parseKeywords")
                            {
                                var html = payload.SelectToken("return_value.html").ToString();

                                Console.WriteLine(" [x] Received HTML: " + html);

                                var kw = new List <string>();
                                kw.Add("abc");
                                kw.Add("123");

                                payload["return_value"]["keywords"] = new JArray(kw.ToArray());
                                Console.WriteLine(" [x] Keywords Parsed: " + payload["return_value"]["keywords"].ToString());
                            }
                            else if (ea.RoutingKey == "fetchPage")
                            {
                                payload["return_value"]["html"] = "C# Worker Page Content";
                            }
                        }
                        catch (Exception err)
                        {
                            Console.WriteLine("[x] Error: " + err.ToString());
                        }
                        finally
                        {
                            WorkerTools.FinishWork(channel, ea, payload);
                        }
                    }
                    ;
                }
        }
コード例 #2
0
        static Random rand = new Random(); // For random sleep time to test parallel example workers

        static void Main(string[] args)
        {
            var cmd       = "messageDotNet";
            var secondCmd = "addOrder";
            var ip        = "192.168.1.14";

            // Prepare the MQ connection to be passed to the workers
            var factory = new ConnectionFactory()
            {
                Uri = "amqp://*****:*****@" + ip
            };

            using (var connection = factory.CreateConnection())
            {
                //run worker
                WorkerTools.RunWork(secondCmd, mySecondWorker, connection);
                WorkerTools.RunWork(cmd, myWorker, connection);
                Thread.Sleep(Timeout.Infinite);
            }
        }