Skip to content

Commit 727feab

Browse files
chore: create stale submission cleanup task and other deployment tweaks (ietf-tools#4358)
* chore: disable beat container for dev * chore: use init option with celery container * chore: create cancel_stale_submissions task via migration * chore: revert accidental change included in last commit * chore: terminate celery docker-init.sh on failed command
1 parent bd6d19e commit 727feab

3 files changed

Lines changed: 71 additions & 15 deletions

File tree

dev/celery/docker-init.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#!/bin/bash
1+
#!/bin/bash -e
22
#
33
# Environment parameters:
44
#

docker-compose.yml

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ services:
6565

6666
celery:
6767
image: ghcr.io/ietf-tools/datatracker-celery:latest
68+
init: true
6869
environment:
6970
CELERY_APP: ietf
7071
CELERY_ROLE: worker
@@ -79,20 +80,23 @@ services:
7980
- .:/workspace
8081
- app-assets:/assets
8182

82-
beat:
83-
image: ghcr.io/ietf-tools/datatracker-celery:latest
84-
environment:
85-
CELERY_APP: ietf
86-
CELERY_ROLE: beat
87-
UPDATE_REQUIREMENTS_FROM: requirements.txt
88-
command:
89-
- '--loglevel=INFO'
90-
depends_on:
91-
- db
92-
restart: unless-stopped
93-
stop_grace_period: 1m
94-
volumes:
95-
- .:/workspace
83+
# Celery Beat is a periodic task runner. It is not normally needed for development,
84+
# but can be enabled by uncommenting the following.
85+
#
86+
# beat:
87+
# image: ghcr.io/ietf-tools/datatracker-celery:latest
88+
# environment:
89+
# CELERY_APP: ietf
90+
# CELERY_ROLE: beat
91+
# UPDATE_REQUIREMENTS_FROM: requirements.txt
92+
# command:
93+
# - '--loglevel=INFO'
94+
# depends_on:
95+
# - db
96+
# restart: unless-stopped
97+
# stop_grace_period: 1m
98+
# volumes:
99+
# - .:/workspace
96100

97101
volumes:
98102
mariadb-data:
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Generated by Django 2.2.28 on 2022-08-23 08:45
2+
3+
from django.db import migrations
4+
from django.utils import timezone
5+
6+
7+
def forward(apps, schema_editor):
8+
IntervalSchedule = apps.get_model('django_celery_beat', 'IntervalSchedule')
9+
PeriodicTask = apps.get_model('django_celery_beat', 'PeriodicTask')
10+
PeriodicTasks = apps.get_model('django_celery_beat', 'PeriodicTasks')
11+
every_five_minutes, _ = IntervalSchedule.objects.get_or_create(
12+
every=5,
13+
period='minutes', # in non-migration code, use IntervalSchedule.MINUTES instead
14+
)
15+
task, _ = PeriodicTask.objects.get_or_create(
16+
interval=every_five_minutes,
17+
name='Cancel stale submissions',
18+
task='ietf.submit.tasks.cancel_stale_submissions',
19+
)
20+
# this replicates the PeriodicTasks.changed() call as of django-celery-beat==2.3.0
21+
PeriodicTasks.objects.update_or_create(ident=1, defaults={'last_update': timezone.now()})
22+
23+
24+
def reverse(apps, schema_editor):
25+
IntervalSchedule = apps.get_model('django_celery_beat', 'IntervalSchedule')
26+
PeriodicTask = apps.get_model('django_celery_beat', 'PeriodicTask')
27+
PeriodicTasks = apps.get_model('django_celery_beat', 'PeriodicTasks')
28+
every_five_minutes = IntervalSchedule.objects.get(
29+
every=5,
30+
period='minutes', # in non-migration code, use IntervalSchedule.MINUTES instead
31+
)
32+
task = PeriodicTask.objects.get(
33+
interval=every_five_minutes,
34+
name='Cancel stale submissions',
35+
task='ietf.submit.tasks.cancel_stale_submissions',
36+
)
37+
task.delete()
38+
every_five_minutes.delete()
39+
# this replicates the PeriodicTasks.changed() call as of django-celery-beat==2.3.0
40+
PeriodicTasks.objects.update_or_create(ident=1, defaults={'last_update': timezone.now()})
41+
42+
43+
class Migration(migrations.Migration):
44+
45+
dependencies = [
46+
('submit', '0009_auto_20220427_1223'),
47+
('django_celery_beat', '0016_alter_crontabschedule_timezone'),
48+
]
49+
50+
operations = [
51+
migrations.RunPython(forward, reverse),
52+
]

0 commit comments

Comments
 (0)