From b76bf3c1ccccbe96b8455ff150c19003a6170b70 Mon Sep 17 00:00:00 2001 From: Andrew Godwin Date: Fri, 22 Jul 2016 21:51:28 -0400 Subject: [PATCH] Add worker_ready signal --- channels/management/commands/runworker.py | 7 +++++-- channels/signals.py | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/channels/management/commands/runworker.py b/channels/management/commands/runworker.py index 2b77020..e082b4a 100644 --- a/channels/management/commands/runworker.py +++ b/channels/management/commands/runworker.py @@ -7,6 +7,7 @@ from channels import DEFAULT_CHANNEL_LAYER, channel_layers from channels.log import setup_logger from channels.staticfiles import StaticFilesConsumer from channels.worker import Worker +from channels.signals import worker_ready class Command(BaseCommand): @@ -53,12 +54,14 @@ class Command(BaseCommand): callback = self.consumer_called # Run the worker try: - Worker( + worker = Worker( channel_layer=self.channel_layer, callback=callback, only_channels=options.get("only_channels", None), exclude_channels=options.get("exclude_channels", None), - ).run() + ) + worker_ready.send(sender=worker) + worker.run() except KeyboardInterrupt: pass diff --git a/channels/signals.py b/channels/signals.py index fbc6f43..8c33b96 100644 --- a/channels/signals.py +++ b/channels/signals.py @@ -4,6 +4,7 @@ from django.dispatch import Signal consumer_started = Signal(providing_args=["environ"]) consumer_finished = Signal() +worker_ready = Signal() # Connect connection closer to consumer finished as well consumer_finished.connect(close_old_connections)