Найти - Пользователи
Полная версия: Tornado sheduler/
Начало » Web » Tornado sheduler/
1
Logrus_ak
Добрый день. Подскажите, пожалуйста, алгоритм либо где почитать о подобном.

Что есть: Клент на джаваскрипте, сервер на торнадо, Общаются между собой через вебсокеты.

Как работает: Клиент делает какие то действия, отправляет их на сервер. На сервере написано приложение, которому торнадо передает сообщения. Приложение проводит рассчеты и отсылает другим клиентам данные также через торнадо.
В чем сложность: Сервер рассылает сообщения клиентам только в случае ,если какой то клиент что-то отправил и сработал метод on_message(self, message) в обработчике.

Что нужно: Хотелось бы, чтобы сервер мог одновременно отправлять свое текущее состояние по таймингу не зависимо общаются с ним клиенты или нет. Скажем пару раз в секунду. Думал сначала про треды, но придется на каждую сессию в которой находятся 2-3 пользователя создавать отдельный тред. Сессий таких несколько тысяч. Хотелось бы, чтобы все было асинхронно.

п.с Не знал в какую тему написать в веб или в нетворк.
o7412369815963
Logrus_ak
В чем сложность: Сервер рассылает сообщения клиентам только в случае ,если какой то клиент что-то отправил и сработал метод on_message(self, message) в обработчике.
Через веб-сокет можно в любой момент отправлять сообщения клиентам, храните все подключения клиентов в списке, и отправляйте всем сообщение в нужный момент.

Logrus_ak
На сервере написано приложение, которому торнадо передает сообщения
Каким образом передает сообщения и принимает результат?
Вот пример запуска приложения асинхронно, если что. Для
жирных расчетов - самое-то.

Logrus_ak
Хотелось бы, чтобы сервер мог одновременно отправлять свое текущее состояние по таймингу не зависимо общаются с ним клиенты или нет. Скажем пару раз в секунду.
Может, но зачем? Сделать таймер и рассылку по списку коннектов.

Logrus_ak
Думал сначала про треды
треды при торнадо точно не нужны
Logrus_ak
Спасибо большое. Почитал документацию и нашел класс tornado.ioloop.PeriodicCallback - используя данный класс можно добавлять периодически выполняемые задачи. То есть,можно вызывать задачу через заданное количество времени.

Ссылки по вопросу:
http://www.tornadoweb.org/en/stable/ioloop.html#tornado.ioloop.PeriodicCallback
http://michael-xiii.blogspot.com/2012/02/tornado-periodiccallback.html
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB