トップ 差分 一覧 Farm ソース 検索 ヘルプ PDF RSS ログイン

Diary/2019-7-10

〆め作業

とあるタスクの〆め.
依頼してた分の動作を確認して不足データの追加をお願いしたり,
追加スクリプトをちょっと書いたり.

MsgpackRPCで遊ぶ


サーバー側で値を保持しとく,とか,Numpyデータやりとりしてみる,とか.

サーバ側
from gevent.server import StreamServer
from mprpc import RPCServer
import numpy

class SumServer(RPCServer):
        def __init__(self):
                super(SumServer, self).__init__()
                self.sum_value = 0

        def sum(self, x, y):
                return x + y

        def acc(self, x):
                self.sum_value = self.sum_value + x
                return self.sum_value
        
        def numpy_test(self, x):
                a = numpy.frombuffer(x, dtype='int')
                a = a + 3
                return a.tobytes()
        
server = StreamServer(('127.0.0.1', 6000), SumServer())
server.serve_forever()

クライアント側
from mprpc import RPCClient
import numpy

client = RPCClient('127.0.0.1', 6000)
print(client.call('sum', 1, 2))
print(client.call('acc', 10))
print(client.call('acc', 20))
print(client.call('acc', 40))
a = numpy.array([1,2,3])
b = numpy.frombuffer(client.call('numpy_test', a.tobytes()), dtype='int')
print(b)