コード例 #1
0
        void PropagateRequestToCo(CreateQueue request)
        {
            var client = new RestClient(request.Cooperator);

            var requestToSend = new RestRequest("queues", Method.POST);

            requestToSend.AddParameter("Name", request.Name);

            client.Execute(requestToSend);
        }
コード例 #2
0
        public async Task <IHttpActionResult> Create(CreateQueue request)
        {
            var queues = await _messageQueueManager.ListQueues();

            if (queues.Any(x => x.Equals(request.Name, StringComparison.InvariantCultureIgnoreCase)))
            {
                return(Conflict());
            }
            await _messageQueueManager.CreateQueueIfNotExists(request.Name);

            return(Ok());
        }
コード例 #3
0
        static IDictionary <string, string> ConvertCreateQueue(CreateQueue request)
        {
            var parameters = new Dictionary <string, string> {
                { "Action", "CreateQueue" }
            };

            if (request.IsSetQueueName())
            {
                parameters.Add("QueueName", request.QueueName);
            }
            if (request.IsSetDefaultVisibilityTimeout())
            {
                parameters.Add("DefaultVisibilityTimeout", request.DefaultVisibilityTimeout + "");
            }
            return(parameters);
        }
コード例 #4
0
        public void Create(CreateQueue request)
        {
            var queueLock = Locks.TakeQueueLock(request.Name);

            lock (queueLock)
            {
                if (Locks.QueuesRecoveryLocks.ContainsKey(request.Name))
                {
                    throw new Exception($"Queue {request.Name} is inconsistent");
                }

                CreateQueueFile(request.Name);
                if (!string.IsNullOrEmpty(request.Cooperator))
                {
                    Propagators.ScheduleQueueOperation(request.Name, () => PropagateRequestToCo(request));
                }
            }
        }
コード例 #5
0
 public CreateQueueResponse CreateQueue(CreateQueue request)
 {
     return(Invoke <CreateQueueResponse>(ConvertCreateQueue(request)));
 }