From 1f01c4819a5382a04c33f22d7d47e3e0138c7be9 Mon Sep 17 00:00:00 2001 From: Bryan Van Deusen Date: Sun, 24 May 2026 22:56:06 -0400 Subject: [PATCH] =?UTF-8?q?fc3h:=20celery=5Fapp=20=E2=80=94=20register=20b?= =?UTF-8?q?ackup=20tasks=20(include=20+=20maintenance=20route=20+=20Beat?= =?UTF-8?q?=20hourly=20tick=20+=20daily=20prune)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.7 (1M context) --- backend/app/celery_app.py | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/app/celery_app.py b/backend/app/celery_app.py index b6ce64c..d169af2 100644 --- a/backend/app/celery_app.py +++ b/backend/app/celery_app.py @@ -31,6 +31,7 @@ def make_celery() -> Celery: "backend.app.tasks.migration", "backend.app.tasks.ml", "backend.app.tasks.download", + "backend.app.tasks.backup", ], ) app.conf.update( @@ -43,6 +44,7 @@ def make_celery() -> Celery: "backend.app.tasks.scan.*": {"queue": "scan"}, "backend.app.tasks.maintenance.*": {"queue": "maintenance"}, "backend.app.tasks.migration.*": {"queue": "maintenance"}, + "backend.app.tasks.backup.*": {"queue": "maintenance"}, }, # Heavy ML tasks need fair dispatch — see ImageRepo's precedent. task_acks_late=True, @@ -89,6 +91,14 @@ def make_celery() -> Celery: "task": "backend.app.tasks.maintenance.prune_task_runs", "schedule": 86400.0, # daily }, + "fc3h-backup-db-nightly": { + "task": "backend.app.tasks.backup.backup_db_nightly", + "schedule": 3600.0, # hourly tick; task self-gates on configured UTC hour + }, + "fc3h-prune-backups": { + "task": "backend.app.tasks.backup.prune_backups", + "schedule": 86400.0, # daily + }, }, timezone="UTC", )