From 68bda58efb60472bd9567b8202ee8d9e24247b2c Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Tue, 23 Aug 2022 11:15:10 -0300 Subject: [PATCH 1/5] chore: disable beat container for dev --- docker-compose.yml | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 983a0de989a..785b9112bc3 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,20 +79,23 @@ services: - .:/workspace - app-assets:/assets - beat: - image: ghcr.io/ietf-tools/datatracker-celery:latest - environment: - CELERY_APP: ietf - CELERY_ROLE: beat - UPDATE_REQUIREMENTS_FROM: requirements.txt - command: - - '--loglevel=INFO' - depends_on: - - db - restart: unless-stopped - stop_grace_period: 1m - volumes: - - .:/workspace +# Celery Beat is a periodic task runner. It is not normally needed for development, +# but can be enabled by uncommenting the following. +# +# beat: +# image: ghcr.io/ietf-tools/datatracker-celery:latest +# environment: +# CELERY_APP: ietf +# CELERY_ROLE: beat +# UPDATE_REQUIREMENTS_FROM: requirements.txt +# command: +# - '--loglevel=INFO' +# depends_on: +# - db +# restart: unless-stopped +# stop_grace_period: 1m +# volumes: +# - .:/workspace volumes: mariadb-data: From 8f1a26c978a6df31195059436c6f6a685a0c7b89 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Tue, 23 Aug 2022 12:00:28 -0300 Subject: [PATCH 2/5] chore: use init option with celery container --- docker-compose.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/docker-compose.yml b/docker-compose.yml index 785b9112bc3..fc09974fe1f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -65,6 +65,7 @@ services: celery: image: ghcr.io/ietf-tools/datatracker-celery:latest + init: true environment: CELERY_APP: ietf CELERY_ROLE: worker From f9049c2f8e2c277ca9bb7d9cda288de1cc31a8fe Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Tue, 23 Aug 2022 13:51:55 -0300 Subject: [PATCH 3/5] chore: create cancel_stale_submissions task via migration --- docker-compose.yml | 28 +++++----- ...10_create_cancel_stale_submissions_task.py | 52 +++++++++++++++++++ 2 files changed, 66 insertions(+), 14 deletions(-) create mode 100644 ietf/submit/migrations/0010_create_cancel_stale_submissions_task.py diff --git a/docker-compose.yml b/docker-compose.yml index fc09974fe1f..9bbc05c3ad6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -83,20 +83,20 @@ services: # Celery Beat is a periodic task runner. It is not normally needed for development, # but can be enabled by uncommenting the following. # -# beat: -# image: ghcr.io/ietf-tools/datatracker-celery:latest -# environment: -# CELERY_APP: ietf -# CELERY_ROLE: beat -# UPDATE_REQUIREMENTS_FROM: requirements.txt -# command: -# - '--loglevel=INFO' -# depends_on: -# - db -# restart: unless-stopped -# stop_grace_period: 1m -# volumes: -# - .:/workspace + beat: + image: ghcr.io/ietf-tools/datatracker-celery:latest + environment: + CELERY_APP: ietf + CELERY_ROLE: beat + UPDATE_REQUIREMENTS_FROM: requirements.txt + command: + - '--loglevel=INFO' + depends_on: + - db + restart: unless-stopped + stop_grace_period: 1m + volumes: + - .:/workspace volumes: mariadb-data: diff --git a/ietf/submit/migrations/0010_create_cancel_stale_submissions_task.py b/ietf/submit/migrations/0010_create_cancel_stale_submissions_task.py new file mode 100644 index 00000000000..5d8511054c4 --- /dev/null +++ b/ietf/submit/migrations/0010_create_cancel_stale_submissions_task.py @@ -0,0 +1,52 @@ +# Generated by Django 2.2.28 on 2022-08-23 08:45 + +from django.db import migrations +from django.utils import timezone + + +def forward(apps, schema_editor): + IntervalSchedule = apps.get_model('django_celery_beat', 'IntervalSchedule') + PeriodicTask = apps.get_model('django_celery_beat', 'PeriodicTask') + PeriodicTasks = apps.get_model('django_celery_beat', 'PeriodicTasks') + every_five_minutes, _ = IntervalSchedule.objects.get_or_create( + every=5, + period='minutes', # in non-migration code, use IntervalSchedule.MINUTES instead + ) + task, _ = PeriodicTask.objects.get_or_create( + interval=every_five_minutes, + name='Cancel stale submissions', + task='ietf.submit.tasks.cancel_stale_submissions', + ) + # this replicates the PeriodicTasks.changed() call as of django-celery-beat==2.3.0 + PeriodicTasks.objects.update_or_create(ident=1, defaults={'last_update': timezone.now()}) + + +def reverse(apps, schema_editor): + IntervalSchedule = apps.get_model('django_celery_beat', 'IntervalSchedule') + PeriodicTask = apps.get_model('django_celery_beat', 'PeriodicTask') + PeriodicTasks = apps.get_model('django_celery_beat', 'PeriodicTasks') + every_five_minutes = IntervalSchedule.objects.get( + every=5, + period='minutes', # in non-migration code, use IntervalSchedule.MINUTES instead + ) + task = PeriodicTask.objects.get( + interval=every_five_minutes, + name='Cancel stale submissions', + task='ietf.submit.tasks.cancel_stale_submissions', + ) + task.delete() + every_five_minutes.delete() + # this replicates the PeriodicTasks.changed() call as of django-celery-beat==2.3.0 + PeriodicTasks.objects.update_or_create(ident=1, defaults={'last_update': timezone.now()}) + + +class Migration(migrations.Migration): + + dependencies = [ + ('submit', '0009_auto_20220427_1223'), + ('django_celery_beat', '0016_alter_crontabschedule_timezone'), + ] + + operations = [ + migrations.RunPython(forward, reverse), + ] From e6998a0d2f4899452f5731b00cd74927ea2234dd Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Tue, 23 Aug 2022 13:53:29 -0300 Subject: [PATCH 4/5] chore: revert accidental change included in last commit --- docker-compose.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 9bbc05c3ad6..fc09974fe1f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -83,20 +83,20 @@ services: # Celery Beat is a periodic task runner. It is not normally needed for development, # but can be enabled by uncommenting the following. # - beat: - image: ghcr.io/ietf-tools/datatracker-celery:latest - environment: - CELERY_APP: ietf - CELERY_ROLE: beat - UPDATE_REQUIREMENTS_FROM: requirements.txt - command: - - '--loglevel=INFO' - depends_on: - - db - restart: unless-stopped - stop_grace_period: 1m - volumes: - - .:/workspace +# beat: +# image: ghcr.io/ietf-tools/datatracker-celery:latest +# environment: +# CELERY_APP: ietf +# CELERY_ROLE: beat +# UPDATE_REQUIREMENTS_FROM: requirements.txt +# command: +# - '--loglevel=INFO' +# depends_on: +# - db +# restart: unless-stopped +# stop_grace_period: 1m +# volumes: +# - .:/workspace volumes: mariadb-data: From 3d0aded331b45e633b623ff8edadb48bf5e8a318 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Tue, 23 Aug 2022 15:01:55 -0300 Subject: [PATCH 5/5] chore: terminate celery docker-init.sh on failed command --- dev/celery/docker-init.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/celery/docker-init.sh b/dev/celery/docker-init.sh index 9d00328ad06..9fb1d6324dc 100755 --- a/dev/celery/docker-init.sh +++ b/dev/celery/docker-init.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -e # # Environment parameters: #