From 4f7dd1d2584e024e65745680af8ef68157fb1107 Mon Sep 17 00:00:00 2001 From: Katie Smith Date: Mon, 5 Mar 2018 15:59:58 +0000 Subject: [PATCH] Delete job statistics tasks The tasks are no longer being used, so can be deleted safely: * record_initial_job_statistics * record_outcome_job_statistics * timeout-job-statistics The test file for the statistics tasks was deleted in a previous commit. --- app/celery/scheduled_tasks.py | 10 ---- app/celery/statistics_tasks.py | 62 ------------------------ tests/app/celery/test_scheduled_tasks.py | 8 --- 3 files changed, 80 deletions(-) delete mode 100644 app/celery/statistics_tasks.py diff --git a/app/celery/scheduled_tasks.py b/app/celery/scheduled_tasks.py index 2e3e725d4..322c57979 100644 --- a/app/celery/scheduled_tasks.py +++ b/app/celery/scheduled_tasks.py @@ -39,7 +39,6 @@ from app.dao.notifications_dao import ( dao_get_scheduled_notifications, set_scheduled_notification_to_processed, ) -from app.dao.statistics_dao import dao_timeout_job_statistics from app.dao.provider_details_dao import ( get_current_provider, dao_toggle_sms_provider @@ -282,15 +281,6 @@ def switch_current_sms_provider_on_slow_delivery(): 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)) - - @notify_celery.task(name="delete-inbound-sms") @statsd(namespace="tasks") def delete_inbound_sms_older_than_seven_days(): diff --git a/app/celery/statistics_tasks.py b/app/celery/statistics_tasks.py deleted file mode 100644 index df6774f71..000000000 --- a/app/celery/statistics_tasks.py +++ /dev/null @@ -1,62 +0,0 @@ -from celery.signals import worker_process_shutdown -from notifications_utils.statsd_decorators import statsd -from sqlalchemy.exc import SQLAlchemyError - -from app import notify_celery -from flask import current_app - -from app.dao.statistics_dao import ( - create_or_update_job_sending_statistics, - update_job_stats_outcome_count -) -from app.dao.notifications_dao import get_notification_by_id -from app.config import QueueNames - - -@worker_process_shutdown.connect -def worker_process_shutdown(sender, signal, pid, exitcode): - current_app.logger.info('Statistics worker shutdown: PID: {} Exitcode: {}'.format(pid, exitcode)) - - -@notify_celery.task(bind=True, name='record_initial_job_statistics', max_retries=20, default_retry_delay=10) -@statsd(namespace="tasks") -def record_initial_job_statistics(self, notification_id): - notification = None - try: - notification = get_notification_by_id(notification_id) - if notification: - create_or_update_job_sending_statistics(notification) - else: - raise SQLAlchemyError("Failed to find notification with id {}".format(notification_id)) - except SQLAlchemyError as e: - current_app.logger.exception(e) - self.retry(queue=QueueNames.RETRY) - except self.MaxRetriesExceededError: - current_app.logger.error( - "RETRY FAILED: task record_initial_job_statistics failed for notification {}".format( - notification.id if notification else "missing ID" - ) - ) - - -@notify_celery.task(bind=True, name='record_outcome_job_statistics', max_retries=20, default_retry_delay=10) -@statsd(namespace="tasks") -def record_outcome_job_statistics(self, notification_id): - notification = None - try: - notification = get_notification_by_id(notification_id) - if notification: - updated_count = update_job_stats_outcome_count(notification) - if updated_count == 0: - self.retry(queue=QueueNames.RETRY) - else: - raise SQLAlchemyError("Failed to find notification with id {}".format(notification_id)) - except SQLAlchemyError as e: - current_app.logger.exception(e) - self.retry(queue=QueueNames.RETRY) - except self.MaxRetriesExceededError: - current_app.logger.error( - "RETRY FAILED: task update_job_stats_outcome_count failed for notification {}".format( - notification.id if notification else "missing ID" - ) - ) diff --git a/tests/app/celery/test_scheduled_tasks.py b/tests/app/celery/test_scheduled_tasks.py index 40023c92d..1a4522d14 100644 --- a/tests/app/celery/test_scheduled_tasks.py +++ b/tests/app/celery/test_scheduled_tasks.py @@ -32,7 +32,6 @@ from app.celery.scheduled_tasks import ( send_scheduled_notifications, send_total_sent_notifications_to_performance_platform, switch_current_sms_provider_on_slow_delivery, - timeout_job_statistics, timeout_notifications, daily_stats_template_usage_by_month, letter_raise_alert_if_no_ack_file_for_zip @@ -492,13 +491,6 @@ def test_should_send_all_scheduled_notifications_to_deliver_queue(sample_templat assert not scheduled_notifications -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) - - def test_should_call_delete_inbound_sms_older_than_seven_days(notify_api, mocker): mocker.patch('app.celery.scheduled_tasks.delete_inbound_sms_created_more_than_a_week_ago') delete_inbound_sms_older_than_seven_days()