public SqsQueueDefinition CreateQueue(string queueName, int?visibilityTimeoutSeconds = null, int?receiveWaitTimeSeconds = null, bool?disasbleBuffering = null, SqsRedrivePolicy redrivePolicy = null) { return(CreateQueue(GetSqsQueueName(queueName), visibilityTimeoutSeconds, receiveWaitTimeSeconds, disasbleBuffering, redrivePolicy)); }
public void To_qd_returns_correct_input_values() { var createdDt = DateTime.UtcNow.ToUnixTime(); var rdPolicy = new SqsRedrivePolicy { DeadLetterTargetArn = "http://test.dlq.targetarn.com", MaxReceiveCount = 11 }; var qn = new SqsQueueName(Guid.NewGuid().ToString("N")); var attributes = new Dictionary<string, string> { { QueueAttributeName.VisibilityTimeout, "17" }, { QueueAttributeName.ReceiveMessageWaitTimeSeconds, "16" }, { QueueAttributeName.CreatedTimestamp, createdDt.ToString(CultureInfo.InvariantCulture) }, { QueueAttributeName.ApproximateNumberOfMessages, "123456789" }, { QueueAttributeName.QueueArn, "http://test.queue.arn.com" }, { QueueAttributeName.RedrivePolicy, rdPolicy.ToJson() } }; var qd = attributes.ToQueueDefinition(qn, "testQueueUrl", disableBuffering: true); Assert.IsTrue(ReferenceEquals(qd.SqsQueueName, qn), "SqsQueueName"); Assert.AreEqual(qd.QueueUrl, "testQueueUrl", "QueueUrl"); Assert.AreEqual(qd.QueueArn, "http://test.queue.arn.com", "QueueArn"); Assert.AreEqual(qd.ApproximateNumberOfMessages, 123456789, "ApproxNumMessages"); Assert.AreEqual(qd.VisibilityTimeout, 17, "VisibilityTimeout"); Assert.AreEqual(qd.ReceiveWaitTime, 16, "ReceiveWaitTime"); Assert.AreEqual(qd.RedrivePolicy.ToJson(), rdPolicy.ToJson(), "RedrivePolicy"); Assert.AreEqual(qd.CreatedTimestamp, createdDt, "CreatedTimestamp"); Assert.IsTrue(qd.DisableBuffering, "DisableBuffering"); }
private SqsQueueDefinition CreateQueue(SqsQueueName queueName, int?visibilityTimeoutSeconds = null, int?receiveWaitTimeSeconds = null, bool?disasbleBuffering = null, SqsRedrivePolicy redrivePolicy = null) { SqsQueueDefinition queueDefinition = null; var request = new CreateQueueRequest { QueueName = queueName.AwsQueueName, Attributes = new Dictionary <string, string> { { QueueAttributeName.ReceiveMessageWaitTimeSeconds, TimeSpan.FromSeconds(receiveWaitTimeSeconds ?? DefaultReceiveWaitTime) .TotalSeconds .ToString(CultureInfo.InvariantCulture) }, { QueueAttributeName.VisibilityTimeout, TimeSpan.FromSeconds(visibilityTimeoutSeconds ?? DefaultVisibilityTimeout) .TotalSeconds .ToString(CultureInfo.InvariantCulture) }, { QueueAttributeName.MessageRetentionPeriod, (QueueNames.IsTempQueue(queueName.QueueName) ? SqsQueueDefinition.DefaultTempQueueRetentionSeconds : SqsQueueDefinition.DefaultPermanentQueueRetentionSeconds).ToString(CultureInfo.InvariantCulture) } } }; if (redrivePolicy != null) { var json = redrivePolicy.ToJson(); request.Attributes.Add(QueueAttributeName.RedrivePolicy, json); } try { var createResponse = SqsClient.CreateQueue(request); // Note - must go fetch the attributes from the server after creation, as the request attributes do not include // anything assigned by the server (i.e. the ARN, etc.). queueDefinition = GetQueueDefinition(queueName, createResponse.QueueUrl); queueDefinition.DisableBuffering = disasbleBuffering ?? DisableBuffering; queueNameMap[queueDefinition.QueueName] = queueDefinition; } catch (QueueNameExistsException) { // Queue exists with different attributes, instead of creating, alter those attributes to match what was requested queueDefinition = UpdateQueue(queueName, request.ToSetAttributesRequest(null), disasbleBuffering); } return(queueDefinition); }
private SqsQueueDefinition CreateQueue(SqsQueueName queueName, int? visibilityTimeoutSeconds = null, int? receiveWaitTimeSeconds = null, bool? disasbleBuffering = null, SqsRedrivePolicy redrivePolicy = null) { SqsQueueDefinition queueDefinition = null; var request = new CreateQueueRequest { QueueName = queueName.AwsQueueName, Attributes = new Dictionary<string, string> { { QueueAttributeName.ReceiveMessageWaitTimeSeconds, TimeSpan.FromSeconds(receiveWaitTimeSeconds ?? DefaultReceiveWaitTime) .TotalSeconds .ToString(CultureInfo.InvariantCulture) }, { QueueAttributeName.VisibilityTimeout, TimeSpan.FromSeconds(visibilityTimeoutSeconds ?? DefaultVisibilityTimeout) .TotalSeconds .ToString(CultureInfo.InvariantCulture) }, { QueueAttributeName.MessageRetentionPeriod, (QueueNames.IsTempQueue(queueName.QueueName) ? SqsQueueDefinition.DefaultTempQueueRetentionSeconds : SqsQueueDefinition.DefaultPermanentQueueRetentionSeconds).ToString(CultureInfo.InvariantCulture) } } }; if (redrivePolicy != null) { var json = AwsClientUtils.ToJson(redrivePolicy); request.Attributes.Add(QueueAttributeName.RedrivePolicy, json); } try { var createResponse = SqsClient.CreateQueue(request); // Note - must go fetch the attributes from the server after creation, as the request attributes do not include // anything assigned by the server (i.e. the ARN, etc.). queueDefinition = GetQueueDefinition(queueName, createResponse.QueueUrl); queueDefinition.DisableBuffering = disasbleBuffering ?? DisableBuffering; queueNameMap[queueDefinition.QueueName] = queueDefinition; } catch (QueueNameExistsException) { // Queue exists with different attributes, instead of creating, alter those attributes to match what was requested queueDefinition = UpdateQueue(queueName, request.ToSetAttributesRequest(null), disasbleBuffering); } return queueDefinition; }
public SqsQueueDefinition CreateQueue(string queueName, int? visibilityTimeoutSeconds = null, int? receiveWaitTimeSeconds = null, bool? disasbleBuffering = null, SqsRedrivePolicy redrivePolicy = null) { return CreateQueue(GetSqsQueueName(queueName), visibilityTimeoutSeconds, receiveWaitTimeSeconds, disasbleBuffering, redrivePolicy); }