Exemple #1
0
    def setUp(self):
        Context, _ = get_zmq_classes()

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

        super(ThreadingBase, self).setUp()
    "run a function, print results"
    print msg, '<request>'
    res = func(*args)
    print msg, '<response>', res


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

    pool = ThreadPool(128)
    spawn = lambda f, *ar, **kw: pool.schedule(f, args=ar, kwargs=kw)

    # Custom serializer/deserializer functions can be passed in. The server
    # side ones must match.
    echo = ThreadingRPCClient(pool=pool, serializer=JSONSerializer())
    echo.connect('tcp://127.0.0.1:5555')

    tasks = [
        spawn(printer, "[echo] Echoing \"Hi there\"", echo.echo, "Hi there")
    ]

    try:
        print "Testing a remote exception...",
        echo.error()
        print "FAIL, no remote exception!"
    except RemoteRPCError, e:
        print "OK, got an expected remote exception:"
        #print e.ename
        print e.evalue
        print e.traceback