- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
尝试将数据库查询结果提供给临时客户端请求,但不想为每个单独的查询打开连接。我不确定我做的是否正确。
当前的解决方案在“服务器”端是这样的(为清楚起见,已大幅缩减):
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 类之外创建数据库连接。这本身可能会导致问题吗?
非常感谢任何想法。
最佳答案
我认为问题不在于您在类外创建连接,这应该没问题。
我认为问题在于您只创建了一个游标并使用了很长时间,据我所知这不是游标的使用方式。
您可以使用 conn.execute
而无需手动创建游标,这应该适合您使用数据库的方式。如果我没记错的话,这在幕后为每个 SQL 命令创建了一个新游标。您也可以在 get_some_data()
中自己执行此操作:创建一个新游标,使用一次,然后在返回数据之前关闭它。
从长远来看,如果您希望您的服务器更健壮,则需要为数据库操作失败或连接丢失时添加一些错误处理。
最后一点:基本上您已经编写了一个非常基本的数据库代理服务器。可能已经有各种现有的解决方案,它们已经处理了您可能遇到的许多问题。我建议至少考虑使用现有的解决方案。
关于python - 使用 rpyc 一次连接到数据库并提供多个查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025765/
在使用 RPyC 服务时如何将标准输出重定向到我的本地客户端?我知道通过使用 使用 Classic RPyC 是可能的 c = rpyc.classic.connect(ip) c.modules.s
考虑一下 Python 脚本将命令发送到外部设备(比方说,通过串行端口)的情况。该脚本驻留在某些 Linux 机器上,该设备对某些命令使用react。这个想法是通过“发送”命令到包含设备生成的转储的文
我有少量的 rpyc 服务器,它们仅部分具有相同的公开功能。 在客户端上,事件应该转发到所有已连接并对特定事件感兴趣的服务器。 我想从服务器连接对象获取服务器上可用的公开函数的列表。 到目前为止我发现
我希望使用 RPyC 为硬件板提供 API 作为服务。该板一次只能满足一个用户的需求。有什么方法可以让 RPyC 强制执行一次只有一个用户可以访问吗? 最佳答案 我不确定这是否有效(或有效),但您可以
我正在使用 rpyc 在 python 中编写一个程序。我的目标是创建一个简单的服务器,它接受来自客户端的数据字节(字符串)。我对 python 和 rpyc 都很陌生。这是我的 server.py
我试图将一大堆逻辑封装到一个 Python 函数中,并将其作为参数传递给我想在服务器上执行它的远程 RPyC 方法。但 RPyC 将函数视为回调并在本地执行。有办法解决吗?我可以强制服务器在服务器而不
我想在 RPyC 中的两个客户端和一个服务器之间建立连接,我想从客户端 1 调用服务器的方法,在服务器的方法中调用客户端 2 的方法,这是我的代码: import rpyc #server: clas
我最近在我的 Ubuntu 14.04 虚拟机上安装了 rpyc: pip install rpyc 我找不到可用于启动服务器的文件。我看了很多地方,但无济于事。 最佳答案 它只是来自命令行的rpyc
尝试将数据库查询结果提供给临时客户端请求,但不想为每个单独的查询打开连接。我不确定我做的是否正确。 当前的解决方案在“服务器”端是这样的(为清楚起见,已大幅缩减): import rpyc from
我需要通过 rpyc 运行命令并获取该命令的结果。 但是每当我运行该命令时,它都会打印在远程服务器上,并且无法带来结果。 我正在做的事情如下: import os, sys import rpyc c
我在应用程序中使用 rpyc,但遇到了一个小问题。 我只是想知道是否可以更新远程属性? 我有一个测试服务器: import rpyc from rpyc.utils.server import Thr
也许有人可以给我一些如何将 Rpyc 安装到 PyScripter 的指南。我将 PyScripter 1.9.9.7 与 Python 2.6 结合使用。我试图用谷歌搜索它并找到了一些说明,但仍然没
我正在尝试使用 RPyC 将对象作为参数从客户端传递到服务器。但是服务器无法访问该对象,我收到一个 AttributeError。 服务器代码: class AgentService(rpyc.Ser
我正在尝试远程运行 psutil 命令: import os, sys, time import rpyc import psutil command = """def rpcexecute():
我见过使用 teleport_function 传递函数,有什么方法可以传递类方法吗??或者我能否以任何其他方式远程执行我的类对象 我可以通过将类作为一项服务来解决这个问题。但这并不能完全满足我在项目
假设我有一个服务: import rpyc class MyService(rpyc.Service): my_dict = {} def exposed_put(self, key,
所以现在我有 rpyc 客户端 A 来抓取数据,当它找到特定数据时,它会将它发送到我的 rpyc 服务器,然后存储该服务器。可以说我也有 rpyc 客户端 B、C 和 D 连接到我的 rpyc 服务器
我正在使用 RPyc 在远程计算机上执行命令。当我运行以下代码时出现错误: cmd = ['clonetst.exe', 'C:\\Users\\pqalinux\\Desktop\\Flowcont
我想使用一个只能在远程 rpyc 服务器上访问的 python 模块。以下两种访问远程机器模块的方式有区别吗: """在客户端:""" my_local_mod_ref = my_rpyc_conne
我正在寻找 Python 的远程过程调用引擎,我发现 PyRo (Python Remote Object)和 RPyC (Remote Python Call) 都是我正在寻找的东西。 但是,我很想
我是一名优秀的程序员,十分优秀!