diff --git a/zerver/management/commands/process_queue.py b/zerver/management/commands/process_queue.py index cfeb54e1b5..6906ef1034 100644 --- a/zerver/management/commands/process_queue.py +++ b/zerver/management/commands/process_queue.py @@ -9,24 +9,30 @@ import signal import logging class Command(BaseCommand): - args = "" + args = " []" help = "Runs a queue processing worker" def handle(self, *args, **options): logging.basicConfig() logger = logging.getLogger('process_queue') - if len(args) != 1: + if len(args) not in (1, 2): raise CommandError("Wrong number of arguments") + queue_name = args[0] + if len(args) > 1: + worker_num = int(args[1]) + else: + worker_num = 0 + def signal_handler(signal, frame): - logger.info("Disconnecting from queue") + logger.info("Worker %d disconnecting from queue %s" % (worker_num, queue_name)) worker.stop() sys.exit(0) signal.signal(signal.SIGTERM, signal_handler) signal.signal(signal.SIGINT, signal_handler) - logger.info("Connecting to queue") - worker = get_worker(args[0]) + logger.info("Worker %d connecting to queue %s" % (worker_num, queue_name)) + worker = get_worker(queue_name) worker.start()