Beispiel #1
0
        public ErrorTypes AddTask(TaskQueueData oTask, Priority oPriority)
        {
            ErrorTypes eResult     = ErrorTypes.Unknown;
            string     strUrlQueue = GetQueueUrl(oPriority);

            try
            {
                string strData = TaskQueueData.SerializeToXml(oTask);

                using (Amazon.SQS.AmazonSQS oSQSClient = Amazon.AWSClientFactory.CreateAmazonSQSClient())
                {
                    Amazon.SQS.Model.SendMessageRequest oSendMessageRequest = new Amazon.SQS.Model.SendMessageRequest();
                    oSendMessageRequest.QueueUrl    = strUrlQueue;
                    oSendMessageRequest.MessageBody = strData;
                    oSQSClient.SendMessage(oSendMessageRequest);
                    eResult = ErrorTypes.NoError;
                }
            }
            catch (Amazon.SQS.AmazonSQSException)
            {
                eResult = ErrorTypes.TaskQueue;
            }
            catch
            {
                eResult = ErrorTypes.TaskQueue;
            }

            return(eResult);
        }
Beispiel #2
0
        public void SendRegistrationInfo(RPCEnvelope msg)
        {
            var env     = new RPCEnvelope();
            var regInfo = new RegistrationInfo();

            env.Message   = regInfo;
            env.Operation = regInfo.GetType().Name;

            regInfo.RequestId   = msg.Message.Id;
            regInfo.Id          = Guid.NewGuid();
            regInfo.Timestamp   = DateTime.UtcNow;
            regInfo.JobQueueUrl = submitQueueUrl;
            env.Message         = regInfo;
            Debug.WriteLine("Send RegistrationInfo to " + msg.ResponseQueueUrl);
            queue.SendMessage(new Amazon.SQS.Model.SendMessageRequest()
                              .WithDelaySeconds(0)
                              .WithQueueUrl(msg.ResponseQueueUrl)
                              .WithMessageBody(JsonConvert.SerializeObject(env)));
        }
Beispiel #3
0
        /// <summary>
        /// TerminateInstances sends number of terminate messages to specified queue.
        /// </summary>
        /// <param name="num"></param>
        /// <returns></returns>
        public int TerminateInstances(int num)
        {
            Debug.WriteLine(String.Format("TerminateInstnaces: {0}", num), this.GetType());
            int count = 0;

            for (int i = 1; i <= num; i++)
            {
                var msg = new Amazon.SQS.Model.SendMessageRequest();
                msg.WithQueueUrl(AppUtility.GetContext().ShutdownQueue);
                msg.WithMessageBody("shutdown");

                var rsp = queue.SendMessage(msg);
                if (rsp.IsSetSendMessageResult())
                {
                    if (rsp.SendMessageResult.IsSetMessageId())
                    {
                        count += 1;
                    }
                }
            }

            return(count);
        }