Exemplo n.º 1
0
    def run(self):
        # Multiple RPCService instances can be run in a single process
        # via Greenlets (Gevent cooperative multitasking)
        Context, _ = get_zmq_classes(env='gevent')
        context = Context()

        # Custom serializer/deserializer functions can be passed in. The server
        # side ones must match.
        echo = EchoService(context=context, serializer=JSONSerializer())
        echo.connect('ipc:///tmp/rpc-demo-echo.service')

        # We create two Math services to simulate load balancing. A client can
        # connect to both of these services and requests will be load balanced.
        math1 = MathService(context=context)
        math1.connect('ipc:///tmp/rpc-demo-math1.service')

        math2 = MathService(context=context)
        math2.connect('ipc:///tmp/rpc-demo-math2.service')

        # Next we spawn service greenlets and wait for them to exit
        joinall([
            echo.start(),
            math1.start(),
            math2.start(),
        ])
Exemplo n.º 2
0
    def setUp(self):
        green_env  = 'eventlet'
        Context, _ = get_zmq_classes(env=green_env)
        self.context = Context()
        self.client  = GreenRPCClient(context=self.context, green_env=green_env)
        self.service = GreenRPCService(context=self.context, green_env=green_env)

        super(EventletBase, self).setUp()
Exemplo n.º 3
0
    def setUp(self):
        green_env = 'eventlet'
        Context, _ = get_zmq_classes(env=green_env)
        self.context = Context()
        self.client = GreenRPCClient(context=self.context, green_env=green_env)
        self.service = GreenRPCService(context=self.context,
                                       green_env=green_env)

        super(EventletBase, self).setUp()
Exemplo n.º 4
0
    def setUp(self):
        Context, _ = get_zmq_classes()

        self.context = Context()
        self.pool    = ThreadPool(24)
        self.client  = SyncRPCClient(context=self.context)
        self.service = ThreadingRPCService(context=self.context, pool=self.pool)

        super(SyncBase, self).setUp()
Exemplo n.º 5
0
    def setUp(self):
        Context, _ = get_zmq_classes()

        self.context = Context()
        self.pool = ThreadPool(24)
        self.client = SyncRPCClient(context=self.context)
        self.service = ThreadingRPCService(context=self.context,
                                           pool=self.pool)

        super(SyncBase, self).setUp()
Exemplo n.º 6
0
    def setUp(self):
        env = 'greenhouse'
        Context, _ = get_zmq_classes(env)

        self.tools    = get_tools(env)
        self.context  = Context()
        self.executor = self.tools.Executor(24)
        self.client   = GreenRPCClient(context=self.context, green_env=env, executor=self.executor)
        self.service  = GreenRPCService(context=self.context, green_env=env, executor=self.executor)

        super(GreenhouseBase, self).setUp()
Exemplo n.º 7
0
    def setUp(self):
        env = None
        Context, _ = get_zmq_classes(env)

        self.tools = get_tools(env)
        self.context = Context()
        self.executor = self.tools.Executor(12)
        self.client = SyncRPCClient(context=self.context)
        self.service = ThreadingRPCService(context=self.context, executor=self.executor)

        super(SyncBase, self).setUp()
Exemplo n.º 8
0
    def setUp(self):
        env = None
        Context, _ = get_zmq_classes(env)

        self.tools    = get_tools(env)
        self.context  = Context()
        self.executor = self.tools.Executor(12)
        #from concurrent.futures import ThreadPoolExecutor
        #self.executor = ThreadPoolExecutor(12)
        self.client   = ThreadingRPCClient(context=self.context, executor=self.executor)
        self.service  = ThreadingRPCService(context=self.context, executor=self.executor)

        super(ThreadingBase, self).setUp()
Exemplo n.º 9
0
        joinall([
            echo.start(),
            math1.start(),
            math2.start(),
        ])

    def start(self):
        start_process(self.run)


if __name__ == '__main__':
    workers = [Worker() for _ in range(cpu_count())]
    for w in workers:
        w.start()

    Context, Poller = get_zmq_classes(env='gevent')
    context = Context()

    echo_inp  = context.socket(ROUTER)
    math1_inp = context.socket(ROUTER)
    math2_inp = context.socket(ROUTER)

    echo_out  = context.socket(DEALER)
    math1_out = context.socket(DEALER)
    math2_out = context.socket(DEALER)

    echo_inp  .bind('tcp://127.0.0.1:5555')
    math1_inp .bind('tcp://127.0.0.1:5556')
    math2_inp .bind('tcp://127.0.0.1:5557')

    echo_out  .bind('ipc:///tmp/rpc-demo-echo.service')
Exemplo n.º 10
0
            math1.start(),
            math2.start(),
        ]
        for service in services:
            service.wait()


if __name__ == '__main__':
    from netcall.utils import setup_logger
    setup_logger()

    workers = [Worker() for _ in range(cpu_count())]
    for w in workers:
        w.start()

    Context, _ = get_zmq_classes(env='eventlet')
    context = Context()

    echo_inp  = context.socket(ROUTER)
    math1_inp = context.socket(ROUTER)
    math2_inp = context.socket(ROUTER)

    echo_out  = context.socket(DEALER)
    math1_out = context.socket(DEALER)
    math2_out = context.socket(DEALER)

    echo_inp  .bind('tcp://127.0.0.1:5555')
    math1_inp .bind('tcp://127.0.0.1:5556')
    math2_inp .bind('tcp://127.0.0.1:5557')

    echo_out  .bind('ipc:///tmp/rpc-demo-echo.service')