Merge pull request #2982 from alphagov/improve-efficiency-of-process-missing-rows

Improve efficiency of process missing rows task
This commit is contained in:
Chris Hill-Scott
2020-10-02 11:23:35 +01:00
committed by GitHub
3 changed files with 8 additions and 12 deletions

View File

@@ -234,17 +234,15 @@ def check_templated_letter_state():
@notify_celery.task(name='check-for-missing-rows-in-completed-jobs') @notify_celery.task(name='check-for-missing-rows-in-completed-jobs')
def check_for_missing_rows_in_completed_jobs(): def check_for_missing_rows_in_completed_jobs():
jobs_and_job_size = find_jobs_with_missing_rows() jobs = find_jobs_with_missing_rows()
for x in jobs_and_job_size: for job in jobs:
job = x[1] recipient_csv, template, sender_id = get_recipient_csv_and_template_and_sender_id(job)
missing_rows = find_missing_row_for_job(job.id, job.notification_count) missing_rows = find_missing_row_for_job(job.id, job.notification_count)
for row_to_process in missing_rows: for row_to_process in missing_rows:
recipient_csv, template, sender_id = get_recipient_csv_and_template_and_sender_id(job) row = recipient_csv[row_to_process.missing_row]
for row in recipient_csv.get_rows(): current_app.logger.info(
if row.index == row_to_process.missing_row: "Processing missing row: {} for job: {}".format(row_to_process.missing_row, job.id))
current_app.logger.info( process_row(row, template, job, job.service, sender_id=sender_id)
"Processing missing row: {} for job: {}".format(row_to_process.missing_row, job.id))
process_row(row, template, job, job.service, sender_id=sender_id)
@notify_celery.task(name='check-for-services-with-high-failure-rates-or-sending-to-tv-numbers') @notify_celery.task(name='check-for-services-with-high-failure-rates-or-sending-to-tv-numbers')

View File

@@ -226,7 +226,6 @@ def find_jobs_with_missing_rows():
ten_minutes_ago = datetime.utcnow() - timedelta(minutes=20) ten_minutes_ago = datetime.utcnow() - timedelta(minutes=20)
yesterday = datetime.utcnow() - timedelta(days=1) yesterday = datetime.utcnow() - timedelta(days=1)
jobs_with_rows_missing = db.session.query( jobs_with_rows_missing = db.session.query(
func.count(Notification.id).label('actual_count'),
Job Job
).filter( ).filter(
Job.job_status == JOB_STATUS_FINISHED, Job.job_status == JOB_STATUS_FINISHED,

View File

@@ -461,8 +461,7 @@ def test_find_jobs_with_missing_rows(sample_email_template):
results = find_jobs_with_missing_rows() results = find_jobs_with_missing_rows()
assert len(results) == 1 assert len(results) == 1
assert results[0].actual_count == 4 assert results[0] == job_with_missing_rows
assert results[0][1] == job_with_missing_rows
def test_find_jobs_with_missing_rows_returns_nothing_for_a_job_completed_less_than_10_minutes_ago( def test_find_jobs_with_missing_rows_returns_nothing_for_a_job_completed_less_than_10_minutes_ago(