From e234641c363ff64dee2ffa7141e3042c534033d3 Mon Sep 17 00:00:00 2001 From: Jens Date: Wed, 22 Jul 2026 05:43:08 +0200 Subject: [PATCH] fix: route celery tasks to consumed queue --- CHANGELOG.md | 3 ++- config/settings.py | 1 + docs/ai/PROJECT_STATE.md | 3 ++- tests/unit/test_deployment_configuration.py | 10 ++++++++++ 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 156976a..ecb206b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,12 +11,13 @@ Alle betekenisvolle wijzigingen worden hier bijgehouden. Het project volgt voorl - Twaalf interessante regionale werkgevers zijn als afzonderlijke, niet-scanbare waaklijst toegevoegd, ook wanneer zij momenteel geen lokale vacature publiceren. - De bronnenpagina toont 21 actieve bronnen, 12 waaklijstwerkgevers en de actieve GeoNames-afstandsstatus; waaklijstbronnen vallen buiten bulkacties en geplande scans. - HTTP-, robots- en IMAP-verbindingen gebruiken expliciet de gepinde `certifi`-CA-bundel met verplichte hostnaam- en certificaatcontrole. Gemeente Mol en Ziekenhuis Geel werken daarmee zonder TLS-bypass. +- Celery gebruikt expliciet queue `default`, zodat bronruns en andere standaardtaken daadwerkelijk door de productie-worker worden geconsumeerd. ### Verificatie - De 8 nieuwe actieve bronnen leverden samen 53 kaarten per cyclus en voltooiden elk twee livecycli zonder parserwarnings; de tweede cycli maakten geen nieuwe dubbelen aan. - GeoNames valideerde 2.781 unieke Belgische postcode-/gemeenterijen; bron- en afgeleide SHA-256-checksums zijn vastgelegd en het actieve profiel is opnieuw gescoord. -- 215 tests geslaagd, 2 optionele Playwrightvarianten overgeslagen en 84,42% branch-aware codedekking; Ruff, Django, migraties, taakledger en repositoryvalidatie zijn groen. +- 216 tests geslaagd, 2 optionele Playwrightvarianten overgeslagen en 84,42% branch-aware codedekking; Ruff, Django, migraties, taakledger en repositoryvalidatie zijn groen. - De Codex-browsercontrole bevestigde 21 actieve bronnen, 12 waaklijstkaarten, 8 nieuwe actieve werkgevers, één `h1`, een lege console en geen horizontale overflow op desktop of 390 px. ## 0.2.9 — 2026-07-22 diff --git a/config/settings.py b/config/settings.py index b8f4cd8..c621465 100644 --- a/config/settings.py +++ b/config/settings.py @@ -227,6 +227,7 @@ CELERY_TASK_ALWAYS_EAGER = env_bool("CELERY_TASK_ALWAYS_EAGER", False) CELERY_TASK_EAGER_PROPAGATES = True CELERY_TASK_ACKS_LATE = True CELERY_WORKER_PREFETCH_MULTIPLIER = 1 +CELERY_TASK_DEFAULT_QUEUE = "default" CELERY_TASK_TIME_LIMIT = 300 CELERY_TASK_SOFT_TIME_LIMIT = 270 CELERY_TIMEZONE = TIME_ZONE diff --git a/docs/ai/PROJECT_STATE.md b/docs/ai/PROJECT_STATE.md index b8db429..c7af5ae 100644 --- a/docs/ai/PROJECT_STATE.md +++ b/docs/ai/PROJECT_STATE.md @@ -119,13 +119,14 @@ VR-126-herverificatie op 2026-07-22: VR-201/VR-205-herverificatie op 2026-07-22: -- 215 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd; +- 216 geslaagde tests en 2 optioneel overgeslagen pytest-Playwrightvarianten; HTML/a11y-fallback geslaagd; - 84,42% branch-aware codedekking; - Ruff, Django system check, migratiecontrole, taakledger en repositoryvalidatie geslaagd via `scripts/codex_verify.sh`; - GeoNames België 2026-04-03 is onder CC BY 4.0 met checksums gedocumenteerd, 2.781 unieke invoerrijen zijn gevalideerd en 2400 Mol is opgelost naar het benaderende postcodecentrum 51.1919, 5.1166; - Gemeente Mol en zeven bijkomende Kempen-werkgevers passeerden elk twee livecycli zonder parserwarnings; samen leverden zij 53 kaarten per cyclus; - twaalf regionale werkgevers staan afzonderlijk als niet-scanbare waaklijst in de UI, ook wanneer zij momenteel geen vacature hebben; - Codex-browsercontrole bevestigde 21 actieve bronnen, 12 waaklijstkaarten, de GeoNames-status, één `h1`, geen horizontale overflow op desktop of 390 px en geen consolefouten; +- de Unraid-deploy gebruikt expliciet Celery-queue `default`, overeenkomstig de queues die de productie-worker consumeert; - taakledger bevat 44 taken: 38 `done`, 3 `blocked-external`, 3 `deferred` en 0 `ready`. ## Deploymentstatus diff --git a/tests/unit/test_deployment_configuration.py b/tests/unit/test_deployment_configuration.py index d11e2c8..528fc46 100644 --- a/tests/unit/test_deployment_configuration.py +++ b/tests/unit/test_deployment_configuration.py @@ -1,6 +1,7 @@ from pathlib import Path import yaml +from django.conf import settings ROOT = Path(__file__).resolve().parents[2] @@ -26,6 +27,15 @@ def test_runtime_is_compatible_with_read_only_container() -> None: assert "for required_host in 127.0.0.1 localhost" in deploy_script +def test_celery_default_queue_is_consumed_by_worker() -> None: + compose = yaml.safe_load((ROOT / "docker-compose.yml").read_text(encoding="utf-8")) + worker_command = compose["services"]["worker"]["command"] + + assert settings.CELERY_TASK_DEFAULT_QUEUE == "default" + queue_index = worker_command.index("-Q") + 1 + assert "default" in worker_command[queue_index].split(",") + + def test_deployment_examples_use_per_platform_mailbox_configuration() -> None: required_keys = { "MAILBOX_CREDENTIAL_KEYS",