Twisted在服务器

时间:2016-06-09 15:44:43

标签: python sockets multiprocessing twisted rpc

我正在运行一个客户端,它对我的​​服务器进行远程调用,都是用twisted编写的。在服务器端运行的方法可能需要很长时间才能返回,并且它们主要在Python代码中占用CPU,因此线程在这里没有任何帮助。

我已经尝试了很多东西,但最终我认为我将运行多个扭曲服务器实例来分发任务。

所以我告诉我的服务器要监听几个套接字(假设我在serverFromString上使用socket_1为服务器1创建它们,在socket_2上为服务器2创建它们)我在这些套接字上连接我的客户端时只需拨打connectUNIXsocket_1socket_2作为参数。

到目前为止,我设法创建了监听我想要的端口的服务器,但我不知道如何告诉我的客户端在套接字上分发callRemote。当我计算几个callRemote时,似乎实际上只使用了一个服务器。我该怎么做?

P.S。 :我尝试使用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

我想在不同的地址上启动多个服务器,并让我的客户端在服务器之间调度远程调用。我不知道我是否清楚,我很乐意增加更多精确度。

0 个答案:

没有答案