From 1c23c94774730e063be759916674ed338fd3be47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Angeluci?= Date: Tue, 28 Oct 2025 21:35:32 -0300 Subject: [PATCH] database scheduler in dry-run mode --- django_celery_beat/schedulers.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/django_celery_beat/schedulers.py b/django_celery_beat/schedulers.py index e28c092f..fb8766f1 100644 --- a/django_celery_beat/schedulers.py +++ b/django_celery_beat/schedulers.py @@ -523,3 +523,25 @@ def schedule(self): repr(entry) for entry in self._schedule.values()), ) return self._schedule + + +class DryRunDatabaseScheduler(DatabaseScheduler): + """ + DatabaseScheduler in dry-run mode. + + The Scheduler reads Periodic Tasks from the database but does not execute them, + only logging when they would have been triggered. + Useful in environments where tasks should not actually run, but the scheduler + must remain operational. + """ + + def apply_entry(self, entry, producer=None): + """ + Overwritten method to log the triggered tasks instead of actually running it. + """ + debug( + 'Dry-run mode: Skipping task %s %s %s', + entry.task, + entry.args, + entry.kwargs + )