public void CanDeserializeIntoRedrivePolicy() { var policy = new RedrivePolicy(1, "queue"); var policySerialized = policy.ToString(); var outputPolicy = RedrivePolicy.ConvertFromString(policySerialized); Assert.AreEqual(policy.MaximumReceives, outputPolicy.MaximumReceives); Assert.AreEqual(policy.DeadLetterQueue, outputPolicy.DeadLetterQueue); }
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; } } }
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, JustSayingConstants.ATTRIBUTE_DELIVERY_DELAY }); Arn = attributes.QueueARN; MessageRetentionPeriod = attributes.MessageRetentionPeriod; VisibilityTimeout = attributes.VisibilityTimeout; DeliveryDelay = attributes.DelaySeconds; RedrivePolicy = ExtractRedrivePolicyFromQueueAttributes(attributes.Attributes); }
private bool RedrivePolicyNeedsUpdating(RedrivePolicy requestedRedrivePolicy) { return RedrivePolicy == null || RedrivePolicy.MaximumReceives != requestedRedrivePolicy.MaximumReceives; }