mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-03 18:01:08 -05:00
Scheduled task to call the timeout function
This commit is contained in:
@@ -16,6 +16,7 @@ from app.dao.notifications_dao import (
|
|||||||
dao_timeout_notifications,
|
dao_timeout_notifications,
|
||||||
is_delivery_slow_for_provider
|
is_delivery_slow_for_provider
|
||||||
)
|
)
|
||||||
|
from app.dao.statistics_dao import timeout_job_statistics as dao_timeout_job_statistics
|
||||||
from app.dao.provider_details_dao import (
|
from app.dao.provider_details_dao import (
|
||||||
get_current_provider,
|
get_current_provider,
|
||||||
dao_toggle_sms_provider
|
dao_toggle_sms_provider
|
||||||
@@ -180,3 +181,12 @@ def switch_current_sms_provider_on_slow_delivery():
|
|||||||
)
|
)
|
||||||
|
|
||||||
dao_toggle_sms_provider(current_provider.identifier)
|
dao_toggle_sms_provider(current_provider.identifier)
|
||||||
|
|
||||||
|
|
||||||
|
@notify_celery.task(name='timeout-job-statistics')
|
||||||
|
@statsd(namespace="tasks")
|
||||||
|
def timeout_job_statistics():
|
||||||
|
updated = dao_timeout_job_statistics(current_app.config.get('SENDING_NOTIFICATIONS_TIMEOUT_PERIOD'))
|
||||||
|
if updated:
|
||||||
|
current_app.logger.info(
|
||||||
|
"Timeout period reached for {} job statistics, failure count has been updated.".format(updated))
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ from functools import partial
|
|||||||
|
|
||||||
from flask import current_app
|
from flask import current_app
|
||||||
from freezegun import freeze_time
|
from freezegun import freeze_time
|
||||||
from app.celery.scheduled_tasks import s3
|
from app.celery.scheduled_tasks import s3, timeout_job_statistics
|
||||||
from app.celery import scheduled_tasks
|
from app.celery import scheduled_tasks
|
||||||
from app.celery.scheduled_tasks import (
|
from app.celery.scheduled_tasks import (
|
||||||
delete_verify_codes,
|
delete_verify_codes,
|
||||||
@@ -409,3 +409,10 @@ def test_switch_providers_on_slow_delivery_does_not_switch_based_on_older_notifi
|
|||||||
switch_current_sms_provider_on_slow_delivery()
|
switch_current_sms_provider_on_slow_delivery()
|
||||||
current_provider = get_current_provider('sms')
|
current_provider = get_current_provider('sms')
|
||||||
assert starting_provider.identifier == current_provider.identifier
|
assert starting_provider.identifier == current_provider.identifier
|
||||||
|
|
||||||
|
|
||||||
|
def test_timeout_job_statistics_called_with_notification_timeout(notify_api, mocker):
|
||||||
|
notify_api.config['SENDING_NOTIFICATIONS_TIMEOUT_PERIOD'] = 999
|
||||||
|
dao_mock = mocker.patch('app.celery.scheduled_tasks.dao_timeout_job_statistics')
|
||||||
|
timeout_job_statistics()
|
||||||
|
dao_mock.assert_called_once_with(999)
|
||||||
|
|||||||
Reference in New Issue
Block a user