gpt4 book ai didi

python - 维护与 zerorpc 的 session

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:02 26 4
gpt4 key购买 nike

如何使用我的 zerorpc 维护不同的 session 或本地状态服务器?

例如(下图),如果我有多个客户端,后续客户端将覆盖模型状态。我考虑过每个客户端都有一个 ID,RPC 逻辑将尝试以这种方式分离变量,但 tbis 看起来很乱,一旦客户端断开连接,我将如何清除旧状态/变量?

服务器

import zerorpc
import FileLoader

class MyRPC(object):
def load(self, myFile):
self.model = FileLoader.load(myFile)
def getModelName(self):
return self.model.name

s = zerorpc.Server(MyRPC())
s.bind("tcp://0.0.0.0:4242")
s.run()

客户端 1

import zerorpc

c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")
c.load("file1")
print c.getModelName()

客户端 2

import zerorpc

c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")
c.load("file2") # AAAHH! The previously loaded model gets overwritten here!
print c.getModelName()

最佳答案

不确定 session ...但是如果您想取回不同的模型?也许您可以只使用一次函数来实例化一个新的 Model()?

import zerorpc
import FileLoader

models_dict ={} # Keep track of our models

def get_model(file):
if file in models_dict:
return models_dict[file]
models_dict[file] = MyModel(file)
return model

class MyModel(object):

def __init__(self, file):
if file:
self.load(file)

def load(self, myFile):
self.model = FileLoader.load(myFile)

def getModelName(self):
return self.model.name

s = zerorpc.Server(<mypackagename.mymodulename>) # Supply the name of current package/module
s.bind("tcp://0.0.0.0:4242")
s.run()

客户:

import zerorpc

c = zerorpc.Client()
c.connect("tcp://127.0.0.1:4242")
print c.get_model("file1")

关于python - 维护与 zerorpc 的 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19699240/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com