Эм... давайте начнём с того, что вы запустите торнадо и проверите.
Создайте рпостой контроллёр.
def get(self):
time.sleep(10)
self.write('hello')
Запустите, и откройте два окна браузера с адресом для вызова этого контроллёра.
Засеките время, первое коно загрузится через 10 секунд, второе через 20.
Это говорит о том что не какой асинхронной обработки в самом торнадо соединенний нет.
Треды Python и GIL вообще никакого отношения к tornado
эх... заставляете меня гуглить либы...
Async MySQL https://github.com/ovidiucp/pymysql-benchmarks для торнадо
Открываем https://github.com/ovidiucp/pymysql-benchmarks/blob/master/threadpool.py
И сомтрим, как же устроена либа.
А всё просто
class WorkerThread(Thread):
Или вы знаете как без треда сделать асинхронную обработку запроса?
Я например нет, и думаю не кто не знает, так как с тердами делают
Так вот асинхронность не фишка торнадо, а фишка питона, которую нужно использовать когда пишут приложения на торнадо.
Можно даже открыть https://github.com/facebook/tornado/blob/master/tornado/web.py
и посмотреть что же такое декоратор @asynchronous в торнадо
А это всего лишь одна строка кода
self._auto_finish = False
которая говорит что не нужно сокету рвать конект автоматически, а нужно жать когда это сделают из контроллёра вызовом finish()
Я про один конект ничего и не писал
Писали
Ну если у вас на всех один контент
может я просто не правильно понял о чём вы, но писали
Сами себе противоречите, если только новые коментарии для всех - зачем делать постоянно запрос к БД?
Ну вы сделали ajax запрос к бд, другой сделал, третий сделал, у каждого своя область видимости и они не видят чужие ответы от БД.
Следовательно кажому запрос делать?