Посты с тэгом rpc


[Перевод] RabbitMQ tutorial 6 — Удаленный вызов процедур


В продолжение пятого урока по изучению азов RabbitMQ, публикую перевод шестого урока с официального сайта. Все примеры написаны на python (используется pika версии 0.9.8), но по-прежнему их можно реализовать на большинстве популярных ЯП.

Во втором уроке мы рассмотрели использование очередей задач для распределения ресурсоёмких задач между несколькими подписчиками.
Но что если мы захотим запустить функцию на удаленной машине и дождаться результата? Ну, это совсем другая история. Этот шаблон широко известен как Удаленный Вызов Процедур (Remote Procedure Call или RPC, далее в тексте RPC).
В этом руководстве мы построим, используя RabbitMQ, RPC систему, которая будет включать клиент и масштабируемый RPC сервер. Так как у нас нет реальной трудоемкой


SOAP FTW

Исторически сложилось так, что я не люблю XML RPC. Ну не знаю почему, просто нелюблю. SOAP не люблю тоже, но его просто много и с ним приходится считаться.

Обновилась неплохая реализация SOAP для Python, называется разумеется soaplib [>>>]


А вот и пример:


from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array

class HelloWorldService(SimpleWSGISoapApp):
    @soapmethod(String,Integer,_returns=Array(String))
    def say_hello(self,name,times):
        results = []
        for i in range(0,times):
            results.append('Hello, %s'%name)
        return results

def 


SOAP FTW

Исторически сложилось так, что я не люблю XML RPC. Ну не знаю почему, просто нелюблю. SOAP не люблю тоже, но его просто много и с ним приходится считаться.

Обновилась неплохая реализация SOAP для Python, называется разумеется soaplib [>>>]


А вот и пример:


from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers.primitive import String, Integer, Array

class HelloWorldService(SimpleWSGISoapApp):
    @soapmethod(String,Integer,_returns=Array(String))
    def say_hello(self,name,times):
        results = []
        for i in range(0,times):
            results.append('Hello, %s'%name)
        return results

def