from django.conf import settings from django.core.management.base import BaseCommand, CommandError, \ CommandParser from tornado import ioloop from tornado.log import app_log # We must call zerver.tornado.ioloop_logging.instrument_tornado_ioloop # before we import anything else from our project in order for our # Tornado load logging to work; otherwise we might accidentally import # zerver.lib.queue (which will instantiate the Tornado ioloop) before # this. from zerver.tornado.ioloop_logging import instrument_tornado_ioloop settings.RUNNING_INSIDE_TORNADO = True instrument_tornado_ioloop() from zerver.lib.debug import interactive_debug_listen from zerver.tornado.application import create_tornado_application, \ setup_tornado_rabbitmq from zerver.tornado.autoreload import start as zulip_autoreload_start from zerver.tornado.event_queue import add_client_gc_hook, \ missedmessage_hook, get_wrapped_process_notification, setup_event_queue from zerver.tornado.sharding import notify_tornado_queue_name if settings.USING_RABBITMQ: from zerver.lib.queue import get_queue_client def handle_callback_exception(callback: Callable[..., Any]) -> None: logging.exception("Exception in callback")
from zerver.lib.debug import interactive_debug_listen from zerver.tornado.application import create_tornado_application, \ setup_tornado_rabbitmq from zerver.tornado.event_queue import add_client_gc_hook, \ missedmessage_hook, process_notification, setup_event_queue # We must call zerver.tornado.ioloop_logging.instrument_tornado_ioloop # before we import anything else from our project in order for our # Tornado load logging to work; otherwise we might accidentally import # zerver.lib.queue (which will instantiate the Tornado ioloop) before # this. from zerver.tornado.ioloop_logging import instrument_tornado_ioloop from zerver.tornado.socket import respond_send_message settings.RUNNING_INSIDE_TORNADO = True instrument_tornado_ioloop() if settings.USING_RABBITMQ: from zerver.lib.queue import get_queue_client def handle_callback_exception(callback: Callable[..., Any]) -> None: logging.exception("Exception in callback") app_log.error("Exception in callback %r", callback, exc_info=True) class Command(BaseCommand): help = "Starts a Tornado Web server wrapping Django." def add_arguments(self, parser: CommandParser) -> None: parser.add_argument('addrport', nargs="?", type=str, help='[optional port number or ipaddr:port]\n '