예제 #1
0
        static void Main(string[] args)
        {
            try
            {
                var fitxer = getFileFromArgs(args);

                IFeinesService broker = new FeinesService();

                broker.Connecta(Host);
                broker.CreaCua(NomCua);

                string missatge;


                System.IO.StreamReader file = new System.IO.StreamReader(fitxer);
                while ((missatge = file.ReadLine()) != null)
                {
                    Console.WriteLine(MESSAGE_SEND, DateTime.Now.ToLongTimeString(), missatge);
                    broker.EnviaALaCua(NomCua, missatge);
                }

                file.Close();
                broker.Desconnecta();
            }
            catch (System.IO.FileNotFoundException)
            {
                Console.WriteLine(FILE_ERROR, args[0]);
            }
            catch (ApplicationException e)
            {
                Console.WriteLine(e.Message);
            }
        }
예제 #2
0
        static void Main(string[] args)
        {
            IFeinesService broker = new FeinesService();

            broker.Connecta(Host);
            // Cua per rebre les tasques
            broker.CreaCua(NomCua, 1);
            // Cua per enviar els resultats
            broker.CreaBroadcast(NomExchange);

            Console.WriteLine(MESSAGE_WAIT);

            var consumer = broker.EsperaMissatge(NomCua);

            consumer.Received += (model, ea) =>
            {
                var body    = ea.Body;
                var message = Encoding.UTF8.GetString(body);
                Console.WriteLine(MESSAGE_WORK_START, DateTime.Now.ToLongTimeString(), message);

                // Fer veure que estem fent una tasca que dura un rato
                // ho fem segons els punts ...
                int dots = message.Split('.').Length - 1;
                Thread.Sleep(dots * 1000);

                Console.WriteLine(MESSAGE_WORK_END, DateTime.Now.ToLongTimeString());

                broker.MissatgeProcessat(ea);

                // Notifica als espectadors
                broker.EnviaBroadcast(NomExchange, "Acabat: " + message);
            };

            Console.WriteLine(MESSAGE_END_PROGRAM);
            Console.ReadLine();
            broker.Desconnecta();
        }