private static RedrivePolicy ExtractRedrivePolicyFromQueueAttributes(Dictionary <string, string> queueAttributes) { if (!queueAttributes.ContainsKey(JustSayingConstants.AttributeRedrivePolicy)) { return(null); } return(RedrivePolicy.ConvertFromString(queueAttributes[JustSayingConstants.AttributeRedrivePolicy])); }
private RedrivePolicy ExtractRedrivePolicyFromQueueAttributes(Dictionary <string, string> queueAttributes) { if (!queueAttributes.ContainsKey(JustSayingConstants.ATTRIBUTE_REDRIVE_POLICY)) { return(null); } return(RedrivePolicy.ConvertFromString(queueAttributes[JustSayingConstants.ATTRIBUTE_REDRIVE_POLICY])); }
private static RedrivePolicy ExtractRedrivePolicyFromQueueAttributes(Dictionary <string, string> queueAttributes) { if (!queueAttributes.TryGetValue(JustSayingConstants.AttributeRedrivePolicy, out var redrivePolicy)) { return(null); } return(RedrivePolicy.ConvertFromString(redrivePolicy)); }
public void CanDeserializeIntoRedrivePolicy() { var policy = new RedrivePolicy(1, "queue"); var policySerialized = policy.ToString(); var outputPolicy = RedrivePolicy.ConvertFromString(policySerialized); outputPolicy.MaximumReceives.ShouldBe(policy.MaximumReceives); outputPolicy.DeadLetterQueue.ShouldBe(policy.DeadLetterQueue); }
protected void SetQueueProperties() { var attributes = GetAttrs(new[] { JustSayingConstants.ATTRIBUTE_ARN, JustSayingConstants.ATTRIBUTE_REDRIVE_POLICY, JustSayingConstants.ATTRIBUTE_POLICY, JustSayingConstants.ATTRIBUTE_RETENTION_PERIOD, JustSayingConstants.ATTRIBUTE_VISIBILITY_TIMEOUT }); Arn = attributes.QueueARN; MessageRetentionPeriod = attributes.MessageRetentionPeriod; VisibilityTimeout = attributes.VisibilityTimeout; RedrivePolicy = ExtractRedrivePolicyFromQueueAttributes(attributes.Attributes); }
public void UpdateRedrivePolicy(RedrivePolicy requestedRedrivePolicy) { if (RedrivePolicyNeedsUpdating(requestedRedrivePolicy)) { var response = Client.SetQueueAttributes( new SetQueueAttributesRequest { QueueUrl = Url, Attributes = new Dictionary <string, string> { { JustSayingConstants.ATTRIBUTE_REDRIVE_POLICY, requestedRedrivePolicy.ToString() } } }); if (response.HttpStatusCode == HttpStatusCode.OK) { RedrivePolicy = requestedRedrivePolicy; } } }
public async Task UpdateRedrivePolicyAsync(RedrivePolicy requestedRedrivePolicy) { if (RedrivePolicyNeedsUpdating(requestedRedrivePolicy)) { var request = new SetQueueAttributesRequest { QueueUrl = Uri.AbsoluteUri, Attributes = new Dictionary <string, string> { { JustSayingConstants.AttributeRedrivePolicy, requestedRedrivePolicy.ToString() } } }; var response = await Client.SetQueueAttributesAsync(request).ConfigureAwait(false); if (response?.HttpStatusCode == HttpStatusCode.OK) { RedrivePolicy = requestedRedrivePolicy; } } }
private bool RedrivePolicyNeedsUpdating(RedrivePolicy requestedRedrivePolicy) { return(RedrivePolicy == null || RedrivePolicy.MaximumReceives != requestedRedrivePolicy.MaximumReceives); }