Browse Source

Added signals: `beat_init` and `beat_embedded_init`

* :data:`celery.signals.beat_init`

    Dispatched when celerybeat starts (either standalone or embedded).
    Sender is the :class:`celery.beat.Service` instance.

* :data:`celery.signals.beat_embedded_init`

    Dispatched in addition to the :data:`beat_init` signal when celerybeat is
    started as an embedded process.  Sender is the
    :class:`celery.beat.Service` instance.
Ask Solem 14 years ago
parent
commit
3dd11c4ee8
2 changed files with 21 additions and 0 deletions
  1. 3 0
      celery/beat.py
  2. 18 0
      celery/signals.py

+ 3 - 0
celery/beat.py

@@ -14,6 +14,7 @@ from datetime import datetime
 
 from celery import platforms
 from celery import registry
+from celery import signals
 from celery.app import app_or_default
 from celery.log import SilenceRepeated
 from celery.schedules import maybe_schedule
@@ -323,7 +324,9 @@ class Service(object):
             "Ticking with max interval->%s" % (
                     humanize_seconds(self.scheduler.max_interval)))
 
+        signals.beat_init.send(sender=self)
         if embedded_process:
+            signals.beat_embedded_init.send(sender=self)
             platforms.set_process_title("celerybeat")
 
         try:

+ 18 - 0
celery/signals.py

@@ -141,6 +141,21 @@ Worker Signals
 
     Dispatched when the worker is about to shut down.
 
+Celerybeat Signals
+~~~~~~~~~~~~~~~~~~
+
+.. data:: beat_init
+
+    Dispatched when celerybeat starts (either standalone or embedded).
+    Sender is the :class:`celery.beat.Service` instance.
+
+.. data:: beat_embedded_init
+
+    Dispatched in addition to the :data:`beat_init` signal when celerybeat is
+    started as an embedded process.  Sender is the
+    :class:`celery.beat.Service` instance.
+
+
 """
 from celery.utils.dispatch import Signal
 
@@ -161,3 +176,6 @@ worker_shutdown = Signal(providing_args=[])
 
 setup_logging = Signal(providing_args=["loglevel", "logfile",
                                        "format", "colorize"])
+
+beat_init = Signal(providing_args=[])
+beat_embedded_init = Signal(providing_args=[])