我正在运行一个客户端,它对我的服务器进行远程调用,都是用twisted编写的。在服务器端运行的方法返回的时间可能很长,而且它们主要消耗Python代码中的CPU,因此线程在这里没有任何帮助
我尝试了很多东西,但最终我想我会运行几个twisted服务器实例来分发任务
因此,我告诉我的服务器在几个套接字上侦听(假设我在服务器1上使用serverFromString
在socket_1
上创建它们,在服务器2上使用socket_2
创建它们),并且我在这些套接字上连接我的客户机,用socket_1
和socket_2
作为参数调用connectUNIX
到目前为止,我成功地创建了监听我想要的端口的服务器,但是我不知道如何告诉我的客户机在套接字之间分发callRemote。当我计算几个callRemote
时,似乎只有一个服务器在实际使用。我该怎么做
注意:我试过使用multiprocessing
,但是我在服务器端的方法充满了不可点击的对象,所以没有机会;而且spawnProcess
的API与我调用的代码完全不兼容。另外,我不愿意使用未记录的未维护项目,因此Ampoule
在这里不是一个选项
编辑:没有答案,所以我猜问题不够清楚。基本上,这一切归结为:我可以传递一个'port'或'socket'参数给callRemote
,这样我就可以管理在哪个服务器上运行远程调用了吗
基本上我有一个django/uwsgi客户机,我在其中调用reactor.connectUNIX(my_port)
。我将python代码中的所有调用重定向到threads.blockingCallFromThread(reactor, callRemote, args)
。远程调用转到my_port
,尽管我不知道参数在哪里/如何传递。在服务器端,应用程序通过twisted.scripts._twistd_unix.UnixApplicationRunner
启动,服务器监听my_port
我想在不同的地址上启动几个服务器,让我的客户机在服务器之间调度远程调用。我不知道我是否还很清楚,我很乐意增加更多的精确性
目前没有回答
相关问题 更多 >
编程相关推荐