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); }
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); }
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); }
public void PutMessage(MsgBusPayload payload) { CloudQueueMessage msg = new CloudQueueMessage(JsonConvert.SerializeObject(payload)); queue.AddMessage(msg); }