From 13067cfed56e98ae4dfea3ad6743a1f6818985e1 Mon Sep 17 00:00:00 2001 From: Stuart Mindt Date: Fri, 31 Jan 2025 09:28:07 +0000 Subject: [PATCH 1/3] Adding check on ID of record created to skip if already processed --- cron-scheduler.py | 19 +++++++++---------- data_generator.py | 4 ++-- datahub/investment/project/tasks.py | 4 ++++ 3 files changed, 15 insertions(+), 12 deletions(-) diff --git a/cron-scheduler.py b/cron-scheduler.py index f4089adcb..3d8d157f1 100644 --- a/cron-scheduler.py +++ b/cron-scheduler.py @@ -37,7 +37,7 @@ EVERY_TEN_MINUTES, EVERY_TEN_PM, EVERY_THREE_AM, - # EVERY_THREE_AM_ON_TWENTY_EIGHTH_EACH_MONTH, + EVERY_THREE_AM_ON_TWENTY_EIGHTH_EACH_MONTH, EVERY_TWO_AM, HALF_DAY_IN_SECONDS, ONE_HOUR_IN_SECONDS, @@ -54,10 +54,10 @@ update_notify_email_delivery_status_for_customer_response_token, ) -# from datahub.investment.project.tasks import ( -# schedule_refresh_gross_value_added_value_for_fdi_investment_projects, -# ) from datahub.investment_lead.tasks.ingest_eyb_triage import eyb_triage_identification_task +from datahub.investment.project.tasks import ( + schedule_refresh_gross_value_added_value_for_fdi_investment_projects, +) from datahub.omis.payment.tasks import refresh_pending_payment_gateway_sessions from datahub.reminder.migration_tasks import run_ita_users_migration, run_post_users_migration from datahub.reminder.tasks import ( @@ -163,12 +163,11 @@ def schedule_jobs(): description='schedule_generate_estimated_land_date_reminders', ) - # TODO: uncomment this once the infinite loop issue (when refreshing GVA) has been fixed - # job_scheduler( - # function=schedule_refresh_gross_value_added_value_for_fdi_investment_projects, - # cron=EVERY_THREE_AM_ON_TWENTY_EIGHTH_EACH_MONTH, - # description='schedule_refresh_gross_value_added_value_for_fdi_investment_projects', - # ) + job_scheduler( + function=schedule_refresh_gross_value_added_value_for_fdi_investment_projects, + cron=EVERY_THREE_AM_ON_TWENTY_EIGHTH_EACH_MONTH, + description='schedule_refresh_gross_value_added_value_for_fdi_investment_projects', + ) if settings.ENABLE_ESTIMATED_LAND_DATE_REMINDERS_EMAIL_DELIVERY_STATUS: job_scheduler( diff --git a/data_generator.py b/data_generator.py index e31b92bd5..96c8c7e85 100644 --- a/data_generator.py +++ b/data_generator.py @@ -30,7 +30,7 @@ ContactFactory, SubsidiaryFactory, ) - +from datahub.investment.project.test.factories import InvestmentProjectFactory class DisableSignals: def __init__(self, disabled_signals=None): @@ -114,4 +114,4 @@ def reconnect(self, signal): ) elapsed = time.time() - start_time - print(f'{timedelta(seconds=elapsed)}') # noqa + print(f'{timedelta(seconds=elapsed)}') # noqa \ No newline at end of file diff --git a/datahub/investment/project/tasks.py b/datahub/investment/project/tasks.py index 031951a24..f4d0f505a 100644 --- a/datahub/investment/project/tasks.py +++ b/datahub/investment/project/tasks.py @@ -81,8 +81,12 @@ def refresh_gross_value_added_value_for_fdi_investment_projects(): which sets the Gross Value added data for a project. """ investment_projects = get_investment_projects_to_refresh_gva_values() + processed_ids = set() for project in investment_projects.iterator(): + if project.id in processed_ids: + continue project.save(update_fields=['gross_value_added', 'gva_multiplier']) + processed_ids.add(project.id) logger.info( 'Task refresh_gross_value_added_value_for_fdi_investment_projects completed', From 750600a1919695e223cb49fdfdc29e6e4dc6e95c Mon Sep 17 00:00:00 2001 From: Stuart Mindt Date: Mon, 3 Feb 2025 08:53:04 +0000 Subject: [PATCH 2/3] Removing unused code after testing --- data_generator.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/data_generator.py b/data_generator.py index 96c8c7e85..d18ce1476 100644 --- a/data_generator.py +++ b/data_generator.py @@ -30,7 +30,6 @@ ContactFactory, SubsidiaryFactory, ) -from datahub.investment.project.test.factories import InvestmentProjectFactory class DisableSignals: def __init__(self, disabled_signals=None): @@ -114,4 +113,5 @@ def reconnect(self, signal): ) elapsed = time.time() - start_time - print(f'{timedelta(seconds=elapsed)}') # noqa \ No newline at end of file + print(f'{timedelta(seconds=elapsed)}') # noqa + \ No newline at end of file From 50b2c91ab70f73302bfe1d5511a927552dbc4cdc Mon Sep 17 00:00:00 2001 From: Stuart Mindt Date: Mon, 3 Feb 2025 08:58:00 +0000 Subject: [PATCH 3/3] Fixing flake issues --- cron-scheduler.py | 3 +-- data_generator.py | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/cron-scheduler.py b/cron-scheduler.py index 3d8d157f1..41cf52a30 100644 --- a/cron-scheduler.py +++ b/cron-scheduler.py @@ -53,11 +53,10 @@ update_notify_email_delivery_status_for_customer_response, update_notify_email_delivery_status_for_customer_response_token, ) - -from datahub.investment_lead.tasks.ingest_eyb_triage import eyb_triage_identification_task from datahub.investment.project.tasks import ( schedule_refresh_gross_value_added_value_for_fdi_investment_projects, ) +from datahub.investment_lead.tasks.ingest_eyb_triage import eyb_triage_identification_task from datahub.omis.payment.tasks import refresh_pending_payment_gateway_sessions from datahub.reminder.migration_tasks import run_ita_users_migration, run_post_users_migration from datahub.reminder.tasks import ( diff --git a/data_generator.py b/data_generator.py index d18ce1476..6cd8d13af 100644 --- a/data_generator.py +++ b/data_generator.py @@ -31,6 +31,7 @@ SubsidiaryFactory, ) + class DisableSignals: def __init__(self, disabled_signals=None): self.stashed_signals = defaultdict(list) @@ -113,5 +114,4 @@ def reconnect(self, signal): ) elapsed = time.time() - start_time - print(f'{timedelta(seconds=elapsed)}') # noqa - \ No newline at end of file + print(f'{timedelta(seconds=elapsed)}') # noqa \ No newline at end of file