尝试为临时客户端请求提供数据库查询结果,但不想为每个单独的查询打开连接。我不确定我是否做得对。
当前的解决方案在“服务器”端是这样的(为了清晰起见,大幅削减):
import rpyc
from rpyc.utils.server import ThreadedServer
import cx_Oracle
conn = cx_Oracle.conect('whatever connect string')
cursor = conn.cursor()
def get_some_data(barcode):
# do something
return cursor.execute("whatever query",{'barcode':barcode})
class data_service(rpyc.Service):
def exposed_get_some_data(self, brcd):
return get_some_data(brcd)
if __name__ == '__main__':
s = ThreadedServer(data_service, port=12345, auto_register=False)
s.start()
这运行了一段时间。但是,程序有时会崩溃,到目前为止,我还无法跟踪它何时崩溃。
我想确认的是,看看数据库连接是如何在 data_service 类之外创建的。这本身可能会导致问题吗?
非常感谢任何想法赞赏。