From bda1eba25374f5f8a5fd2b8d5aa32edc75591712 Mon Sep 17 00:00:00 2001 From: Nicolas ROCHE Date: Mon, 30 Oct 2023 16:27:37 +0100 Subject: [PATCH] cron: add an every5min entry (#82961) --- debian/uwsgi.ini | 1 + passerelle/base/management/commands/cron.py | 7 +++++-- passerelle/base/models.py | 3 +++ tests/test_cron.py | 2 +- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/debian/uwsgi.ini b/debian/uwsgi.ini index 8c8f036c..63007ba8 100644 --- a/debian/uwsgi.ini +++ b/debian/uwsgi.ini @@ -18,6 +18,7 @@ spooler-python-import = passerelle.utils.spooler spooler-max-tasks = 20 # every five minutes +unique-cron = -5 -1 -1 -1 -1 /usr/bin/passerelle-manage tenant_command cron --all-tenants every5min unique-cron = -5 -1 -1 -1 -1 /usr/bin/passerelle-manage tenant_command cron --all-tenants availability unique-cron = -5 -1 -1 -1 -1 /usr/bin/passerelle-manage tenant_command cron --all-tenants jobs # hourly diff --git a/passerelle/base/management/commands/cron.py b/passerelle/base/management/commands/cron.py index d65fbf6b..5243d1e3 100644 --- a/passerelle/base/management/commands/cron.py +++ b/passerelle/base/management/commands/cron.py @@ -28,7 +28,10 @@ class Command(BaseCommand): def add_arguments(self, parser): parser.add_argument( - 'frequency', metavar='FREQUENCY', type=str, help='hourly/daily/weekly/monthly/availability/jobs' + 'frequency', + metavar='FREQUENCY', + type=str, + help='every5min/hourly/daily/weekly/monthly/availability/jobs', ) parser.add_argument( '--connector', @@ -46,7 +49,7 @@ class Command(BaseCommand): ) def handle(self, frequency, **options): - if frequency not in ('hourly', 'daily', 'weekly', 'monthly', 'availability', 'jobs'): + if frequency not in ('every5min', 'hourly', 'daily', 'weekly', 'monthly', 'availability', 'jobs'): raise CommandError('unknown frequency') errors = [] for app in get_all_apps(): diff --git a/passerelle/base/models.py b/passerelle/base/models.py index 31ba57b3..1000141b 100644 --- a/passerelle/base/models.py +++ b/passerelle/base/models.py @@ -588,6 +588,9 @@ class BaseResource(models.Model): else: ResourceStatus.objects.filter(pk=current_status.pk).update(message=message) + def every5min(self): + pass + def hourly(self): pass diff --git a/tests/test_cron.py b/tests/test_cron.py index 4726746d..dce8092b 100644 --- a/tests/test_cron.py +++ b/tests/test_cron.py @@ -8,7 +8,7 @@ from passerelle.apps.base_adresse.models import BaseAdresse def test_cron_frequencies(db): - for frequency in ('hourly', 'daily', 'weekly', 'monthly'): + for frequency in ('every5min', 'hourly', 'daily', 'weekly', 'monthly'): call_command('cron', frequency) with pytest.raises(CommandError): call_command('cron', 'randomly')