Ejemplo n.º 1
0
        private CalcMessage readNextMessage(IMsgBusContext queue)
        {
            CalcMessage message      = null;
            int         retryCount   = Int32.Parse(ConfigurationManager.AppSettings["QueueGetMessageRetry"]);
            int         retryWaitSec = Int32.Parse(ConfigurationManager.AppSettings["QueueGetMessageRetryWaitSec"]);

            try
            {
                while (retryCount > 0 && message == null)
                {
                    MsgBusPayload payload = queue.GetNextMessage();
                    --retryCount;
                    if (payload != null)
                    {
                        message = JsonConvert.DeserializeObject <CalcMessage>(payload.Payload);
                    }
                    else
                    {
                        Console.WriteLine(String.Format("{1} No message - waiting: retries left {0}", retryCount, DateTime.UtcNow.ToShortTimeString()));
                        System.Threading.Thread.Sleep(retryWaitSec * 1000);
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(String.Format("{1} Exception while reading message: {0}", ex.Message, DateTime.UtcNow.ToShortTimeString()));
                message = null;
            }

            return(message);
        }
Ejemplo n.º 2
0
        private void sendStartMessage(string fileName)
        {
            CalcMessage calcMessage = new CalcMessage();

            calcMessage.InputFileName = fileName;

            MsgBusPayload msgBusPayload = new MsgBusPayload();

            msgBusPayload.Sender  = "HeavyCalcController";
            msgBusPayload.Payload = JsonConvert.SerializeObject(calcMessage);

            ctxMsgBus.PutMessage(msgBusPayload);
        }
Ejemplo n.º 3
0
        public MsgBusPayload GetNextMessage()
        {
            MsgBusPayload     result     = null;
            CloudQueueMessage newMessage = queue.GetMessage();

            if (newMessage != null)
            {
                result = JsonConvert.DeserializeObject <MsgBusPayload>(newMessage.AsString);

                if (string.IsNullOrEmpty(Id) || string.IsNullOrEmpty(result.Receiver))
                {
                    queue.DeleteMessageAsync(newMessage);
                }
            }

            return(result);
        }
Ejemplo n.º 4
0
        public void PutMessage(MsgBusPayload payload)
        {
            CloudQueueMessage msg = new CloudQueueMessage(JsonConvert.SerializeObject(payload));

            queue.AddMessage(msg);
        }