mirror of
https://github.com/GSA/notifications-api.git
synced 2026-09-09 05:13:12 -04:00
Merge pull request #596 from alphagov/extend-timeout-on-db-retries
Improve logging and extend time periods associated with retrying
This commit is contained in:
@@ -92,11 +92,15 @@ def send_sms_to_provider(self, service_id, notification_id):
|
|||||||
except SmsClientException as e:
|
except SmsClientException as e:
|
||||||
try:
|
try:
|
||||||
current_app.logger.error(
|
current_app.logger.error(
|
||||||
"SMS notification {} failed".format(notification_id)
|
"RETRY: SMS notification {} failed".format(notification_id)
|
||||||
)
|
)
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception(e)
|
||||||
self.retry(queue="retry", countdown=retry_iteration_to_delay(self.request.retries))
|
self.retry(queue="retry", countdown=retry_iteration_to_delay(self.request.retries))
|
||||||
except self.MaxRetriesExceededError:
|
except self.MaxRetriesExceededError:
|
||||||
|
current_app.logger.error(
|
||||||
|
"RETRY FAILED: task send_sms_to_provider failed for notification {}".format(notification.id),
|
||||||
|
e
|
||||||
|
)
|
||||||
update_notification_status_by_id(notification.id, 'technical-failure', 'failure')
|
update_notification_status_by_id(notification.id, 'technical-failure', 'failure')
|
||||||
|
|
||||||
current_app.logger.info(
|
current_app.logger.info(
|
||||||
@@ -173,11 +177,15 @@ def send_email_to_provider(self, service_id, notification_id):
|
|||||||
except EmailClientException as e:
|
except EmailClientException as e:
|
||||||
try:
|
try:
|
||||||
current_app.logger.error(
|
current_app.logger.error(
|
||||||
"Email notification {} failed".format(notification_id)
|
"RETRY: Email notification {} failed".format(notification_id)
|
||||||
)
|
)
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception(e)
|
||||||
self.retry(queue="retry", countdown=retry_iteration_to_delay(self.request.retries))
|
self.retry(queue="retry", countdown=retry_iteration_to_delay(self.request.retries))
|
||||||
except self.MaxRetriesExceededError:
|
except self.MaxRetriesExceededError:
|
||||||
|
current_app.logger.error(
|
||||||
|
"RETRY FAILED: task send_email_to_provider failed for notification {}".format(notification.id),
|
||||||
|
e
|
||||||
|
)
|
||||||
update_notification_status_by_id(notification.id, 'technical-failure', 'failure')
|
update_notification_status_by_id(notification.id, 'technical-failure', 'failure')
|
||||||
|
|
||||||
current_app.logger.info(
|
current_app.logger.info(
|
||||||
|
|||||||
@@ -126,7 +126,7 @@ def remove_job(job_id):
|
|||||||
current_app.logger.info("Job {} has been removed from s3.".format(job_id))
|
current_app.logger.info("Job {} has been removed from s3.".format(job_id))
|
||||||
|
|
||||||
|
|
||||||
@notify_celery.task(bind=True, name="send-sms", max_retries=5, default_retry_delay=5)
|
@notify_celery.task(bind=True, name="send-sms", max_retries=5, default_retry_delay=300)
|
||||||
@statsd(namespace="tasks")
|
@statsd(namespace="tasks")
|
||||||
def send_sms(self,
|
def send_sms(self,
|
||||||
service_id,
|
service_id,
|
||||||
@@ -154,11 +154,17 @@ def send_sms(self,
|
|||||||
)
|
)
|
||||||
|
|
||||||
except SQLAlchemyError as e:
|
except SQLAlchemyError as e:
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception("RETRY: send_sms notification {}".format(notification_id), e)
|
||||||
raise self.retry(queue="retry", exc=e)
|
try:
|
||||||
|
raise self.retry(queue="retry", exc=e)
|
||||||
|
except self.MaxRetriesExceededError:
|
||||||
|
current_app.logger.exception(
|
||||||
|
"RETRY FAILED: task send_sms failed for notification {}".format(notification.id),
|
||||||
|
e
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
@notify_celery.task(bind=True, name="send-email", max_retries=5, default_retry_delay=5)
|
@notify_celery.task(bind=True, name="send-email", max_retries=5, default_retry_delay=300)
|
||||||
@statsd(namespace="tasks")
|
@statsd(namespace="tasks")
|
||||||
def send_email(self, service_id,
|
def send_email(self, service_id,
|
||||||
notification_id,
|
notification_id,
|
||||||
@@ -180,8 +186,14 @@ def send_email(self, service_id,
|
|||||||
|
|
||||||
current_app.logger.info("Email {} created at {}".format(notification_id, created_at))
|
current_app.logger.info("Email {} created at {}".format(notification_id, created_at))
|
||||||
except SQLAlchemyError as e:
|
except SQLAlchemyError as e:
|
||||||
current_app.logger.exception(e)
|
current_app.logger.exception("RETRY: send_email notification {}".format(notification_id), e)
|
||||||
raise self.retry(queue="retry", exc=e)
|
try:
|
||||||
|
raise self.retry(queue="retry", exc=e)
|
||||||
|
except self.MaxRetriesExceededError:
|
||||||
|
current_app.logger.error(
|
||||||
|
"RETRY FAILED: task send_email failed for notification {}".format(notification.id),
|
||||||
|
e
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def _save_notification(created_at, notification, notification_id, service_id, notification_type, api_key_id, key_type):
|
def _save_notification(created_at, notification, notification_id, service_id, notification_type, api_key_id, key_type):
|
||||||
|
|||||||
Reference in New Issue
Block a user