установки:Неблокирующий WebSocketHandler при получении задания из очереди
- Торнадо HTTP/WebSocket сервер. WebSocketHandler реагирует на сообщения от клиента (например, поместить их в задании очереди)
- A Beanstalk-задания очереди, которая посылает задания к различным компонентам
- Некоторые другие компоненты обмениваются данными через бобовый стебель, но те не имеют никакого отношения к моей проблеме.
Проблема:
- WebSocketHandler должен реагировать на рабочих местах, но если он слушает на бобовом стебле, его блокировка. Работа может быть, например, 'отправить данные xy клиенту xyz'
Как это можно решить красиво? Мой первый подход заключался в том, что в отдельном потоке был запущен jobqueue-listener, в котором содержался список маринованного WebSocketHandler. Все должно храниться в redis-db. Поскольку WebsocketHandler не может быть маринован (и этот подход кажется очень уродливым), я ищу другое решение.
Любые идеи?
Спасибо за ваш ответ, он работал так, как я ожидал :-) – Beastcraft