mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	This is a preview rule, not yet enabled by default.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
(cherry picked from commit d748ec8d52)
		
	
		
			
				
	
	
		
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import tornado.web
 | 
						|
from django.conf import settings
 | 
						|
from django.core.handlers.base import BaseHandler
 | 
						|
from tornado import autoreload
 | 
						|
 | 
						|
from zerver.lib.queue import TornadoQueueClient
 | 
						|
from zerver.tornado.handlers import AsyncDjangoHandler
 | 
						|
 | 
						|
 | 
						|
def setup_tornado_rabbitmq(queue_client: TornadoQueueClient) -> None:  # nocoverage
 | 
						|
    # When tornado is shut down, disconnect cleanly from RabbitMQ
 | 
						|
    autoreload.add_reload_hook(queue_client.close)
 | 
						|
 | 
						|
 | 
						|
def create_tornado_application(*, autoreload: bool = False) -> tornado.web.Application:
 | 
						|
    django_handler = BaseHandler()
 | 
						|
    django_handler.load_middleware()
 | 
						|
 | 
						|
    urls = (
 | 
						|
        r"/notify_tornado",
 | 
						|
        r"/json/events",
 | 
						|
        r"/api/v1/events",
 | 
						|
        r"/api/v1/events/internal",
 | 
						|
    )
 | 
						|
 | 
						|
    return tornado.web.Application(
 | 
						|
        [(url, AsyncDjangoHandler, dict(django_handler=django_handler)) for url in urls],
 | 
						|
        debug=settings.DEBUG,
 | 
						|
        autoreload=autoreload,
 | 
						|
        # Disable Tornado's own request logging, since we have our own
 | 
						|
        log_function=lambda x: None,
 | 
						|
    )
 |