chore: create stale submission cleanup task and other deployment tweaks (#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
This commit is contained in:
parent
bd6d19efff
commit
727feabfff
|
@ -1,4 +1,4 @@
|
||||||
#!/bin/bash
|
#!/bin/bash -e
|
||||||
#
|
#
|
||||||
# Environment parameters:
|
# Environment parameters:
|
||||||
#
|
#
|
||||||
|
|
|
@ -65,6 +65,7 @@ services:
|
||||||
|
|
||||||
celery:
|
celery:
|
||||||
image: ghcr.io/ietf-tools/datatracker-celery:latest
|
image: ghcr.io/ietf-tools/datatracker-celery:latest
|
||||||
|
init: true
|
||||||
environment:
|
environment:
|
||||||
CELERY_APP: ietf
|
CELERY_APP: ietf
|
||||||
CELERY_ROLE: worker
|
CELERY_ROLE: worker
|
||||||
|
@ -79,20 +80,23 @@ services:
|
||||||
- .:/workspace
|
- .:/workspace
|
||||||
- app-assets:/assets
|
- app-assets:/assets
|
||||||
|
|
||||||
beat:
|
# Celery Beat is a periodic task runner. It is not normally needed for development,
|
||||||
image: ghcr.io/ietf-tools/datatracker-celery:latest
|
# but can be enabled by uncommenting the following.
|
||||||
environment:
|
#
|
||||||
CELERY_APP: ietf
|
# beat:
|
||||||
CELERY_ROLE: beat
|
# image: ghcr.io/ietf-tools/datatracker-celery:latest
|
||||||
UPDATE_REQUIREMENTS_FROM: requirements.txt
|
# environment:
|
||||||
command:
|
# CELERY_APP: ietf
|
||||||
- '--loglevel=INFO'
|
# CELERY_ROLE: beat
|
||||||
depends_on:
|
# UPDATE_REQUIREMENTS_FROM: requirements.txt
|
||||||
- db
|
# command:
|
||||||
restart: unless-stopped
|
# - '--loglevel=INFO'
|
||||||
stop_grace_period: 1m
|
# depends_on:
|
||||||
volumes:
|
# - db
|
||||||
- .:/workspace
|
# restart: unless-stopped
|
||||||
|
# stop_grace_period: 1m
|
||||||
|
# volumes:
|
||||||
|
# - .:/workspace
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
mariadb-data:
|
mariadb-data:
|
||||||
|
|
|
@ -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),
|
||||||
|
]
|
Loading…
Reference in a new issue