DRY-up loops to kick off status aggregation tasks

This will make it easier to parallelise by service in the following
commits, since we only have one loop to change.
This commit is contained in:
Ben Thorner
2022-01-11 16:42:41 +00:00
parent ddbf556486
commit 4feed950c4

View File

@@ -91,31 +91,21 @@ def create_nightly_notification_status():
yesterday = convert_utc_to_bst(datetime.utcnow()).date() - timedelta(days=1) yesterday = convert_utc_to_bst(datetime.utcnow()).date() - timedelta(days=1)
# email and sms for notification_type in [SMS_TYPE, EMAIL_TYPE, LETTER_TYPE]:
for i in range(4): days = 10 if notification_type == LETTER_TYPE else 4
process_day = yesterday - timedelta(days=i)
for notification_type in [SMS_TYPE, EMAIL_TYPE]: for i in range(days):
process_day = yesterday - timedelta(days=i)
create_nightly_notification_status_for_day.apply_async( create_nightly_notification_status_for_day.apply_async(
kwargs={'process_day': process_day.isoformat(), 'notification_type': notification_type}, kwargs={'process_day': process_day.isoformat(), 'notification_type': notification_type},
queue=QueueNames.REPORTING queue=QueueNames.REPORTING
) )
current_app.logger.info( current_app.logger.info(
f"create-nightly-notification-status task: create-nightly-notification-status-for-day task created " f"create-nightly-notification-status-for-day task created "
f"for type {notification_type} for {process_day}" f"for type {notification_type} for {process_day}"
) )
# letters
for i in range(10):
process_day = yesterday - timedelta(days=i)
create_nightly_notification_status_for_day.apply_async(
kwargs={'process_day': process_day.isoformat(), 'notification_type': LETTER_TYPE},
queue=QueueNames.REPORTING
)
current_app.logger.info(
f"create-nightly-notification-status task: create-nightly-notification-status-for-day task created "
f"for type letter for {process_day}"
)
@notify_celery.task(name="create-nightly-notification-status-for-day") @notify_celery.task(name="create-nightly-notification-status-for-day")
def create_nightly_notification_status_for_day(process_day, notification_type): def create_nightly_notification_status_for_day(process_day, notification_type):