LINUX.ORG.RU

асинхронный jsonrpc клиент-сервер

 ,


2

3

Привет Интернет.

Нужна jsonrpc либа для асинхронного общения клиента с сервером и наоборот на питоне. Нашел такое.

Но к сожалению, если команда выполняется слишком долго на стороне сервера, то он не может принимать другие команды, пока первая не завершится, а хочется наоборот.


Ответ на: комментарий от rikimaru

и как оно ему поможет? Крутится в 1 потоке, исполняет там же. Хм. Хотя я только поверхностно глянул.

Вообще есть мнение, что Python JSON-RPC тоже осилит такое поведение. просто исполнение кидай в другой пул. асинхронный же тебе нужен вопрос/ответ

anonymous ()
Ответ на: комментарий от rikimaru

А ну так йопта! этот торнадо юзает то, что ТС в ссылке указал. Просто размазывает по своей логике.

anonymous ()

Я бы сделал на asyncio, asynchttp и встроенной json-либой. Я пробовал, мне понравилось.

true_admin ★★★★★ ()

пока пришёл к выводу, что нужно лезть в кишки pyjsonrpc, смотреть как он принимает и шлёт сообщения и потом вывернуть это в такое: на стороне сервера сделать очередь сообщений, клиент шлёт сообщение с сгенеренным id, сервер его принимает, кладёт в пул и обрабатывает сообщения из пула, как только какой-то таск закончился, возвращает его статус и id клиенту

ubik ()
Ответ на: комментарий от ubik

Если у тебя сообщение обрабатывается долго из-за других сетевых запросов, а не из-за долгих вычислений, то ты делаешь неправильно.

Vovka-Korovka ★★★★★ ()

jsonrps в принципе синхронный протокол, асинхронность это к amqp например. Давайте называть все своими именами, и искать обычный многопоточный сервер. Можно еще замутить на tornado или asyncio, но протокол от этого не станет асинхронным.

redixin ★★★★ ()
Ответ на: комментарий от Vovka-Korovka

проблема в долгих вычислениях, а ждать я не могу

ubik ()
Ответ на: комментарий от redixin

да, по сути мне нужен многопоточный сервер, умеющий jsonrpc

ubik ()
Ответ на: комментарий от ubik

А вычисления на чистом питоне идут? Если так - то с потоками тоже плохо будет из-за GIL.

Vovka-Korovka ★★★★★ ()
Ответ на: комментарий от redixin

jsonrps в принципе синхронный протокол

чоэтовдруг? синхронным может быть обработка, а не протокол. Вполне видел рабочие асинхронные примеры на нем. Он ж расширяется легко.

anonymous ()
Ответ на: комментарий от anonymous

Обработка может быть асинхронной, но сам протокол где есть понятие «ответ», который не может быть до того как был отправлен запрос, не очень к такому распологает. Хотя конечно да, особенно если вспомнить букву А в слове АЯКС.

redixin ★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.