Merge pull request #1475 from GSA/main

12/11/2024 Production Deployment API hotfixes
This commit is contained in:
Steven Reilly
2024-12-11 09:49:23 -05:00
committed by GitHub
3 changed files with 12 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
import json import json
import os import os
import random
from datetime import timedelta from datetime import timedelta
from botocore.exceptions import ClientError from botocore.exceptions import ClientError
@@ -29,8 +30,7 @@ DELIVERY_RECEIPT_DELAY_IN_SECONDS = 30
@notify_celery.task( @notify_celery.task(
bind=True, bind=True,
name="check_sms_delivery_receipt", name="check_sms_delivery_receipt",
max_retries=48, max_retries=72,
default_retry_delay=300,
) )
def check_sms_delivery_receipt(self, message_id, notification_id, sent_at): def check_sms_delivery_receipt(self, message_id, notification_id, sent_at):
""" """
@@ -62,7 +62,10 @@ def check_sms_delivery_receipt(self, message_id, notification_id, sent_at):
carrier=carrier, carrier=carrier,
provider_response=provider_response, provider_response=provider_response,
) )
raise self.retry(exc=ntfe) base_delay = 3600 # one hour
jitter = random.randint(-1200, +1200) # nosec B311
retry_delay = base_delay + jitter
raise self.retry(countdown=retry_delay, exc=ntfe)
except ClientError as err: except ClientError as err:
# Probably a ThrottlingException but could be something else # Probably a ThrottlingException but could be something else
error_code = err.response["Error"]["Code"] error_code = err.response["Error"]["Code"]
@@ -77,7 +80,10 @@ def check_sms_delivery_receipt(self, message_id, notification_id, sent_at):
carrier=carrier, carrier=carrier,
provider_response=provider_response, provider_response=provider_response,
) )
raise self.retry(exc=err) base_delay = 3600 # one hour
jitter = random.randint(-1200, +1200) # nosec B311
retry_delay = base_delay + jitter
raise self.retry(countdown=retry_delay, exc=err)
if status == "success": if status == "success":
status = NotificationStatus.DELIVERED status = NotificationStatus.DELIVERED

View File

@@ -158,7 +158,7 @@ class AwsCloudwatchClient(Client):
message["delivery"].get("phoneCarrier", "Unknown Carrier"), message["delivery"].get("phoneCarrier", "Unknown Carrier"),
) )
if time_now > (created_at + timedelta(hours=3)): if time_now > (created_at + timedelta(hours=73)):
# see app/models.py Notification. This message corresponds to "permanent-failure", # see app/models.py Notification. This message corresponds to "permanent-failure",
# but we are copy/pasting here to avoid circular imports. # but we are copy/pasting here to avoid circular imports.
return "failure", "Unable to find carrier response." return "failure", "Unable to find carrier response."

View File

@@ -167,7 +167,7 @@ class Config(object):
current_minute = (datetime.now().minute + 1) % 60 current_minute = (datetime.now().minute + 1) % 60
CELERY = { CELERY = {
"worker_max_tasks_per_child": 500, "worker_max_tasks_per_child": 2000,
"broker_url": REDIS_URL, "broker_url": REDIS_URL,
"broker_transport_options": { "broker_transport_options": {
"visibility_timeout": 310, "visibility_timeout": 310,