Python论坛  - 讨论区

标题:[python-chinese] 多线程的xmlrpc server。

2006年12月06日 星期三 22:54

feihu feihu.list在gmail.com
星期三 十二月 6 22:54:08 HKT 2006

刚准备实现一个xmlrpc server,看了手册,直接就使用了 import SimpleXMLRPCServer
结果发现只是单线程的。搜了几个开源的,简单试用了一下,发现也是单线程的。
最后找到一篇hack性质的:http://mail.python.org/pipermail/python-list/2003-July/217125.html

使用SimpleXMLRPCServer.py的源码把里面 SocketServer.TCPServer 换成
SocketServer.ThreadingTCPServer.就ok了。这也行?试了一下,好像真的可以。

对python的socket开发不熟悉。这样会有什么隐患吗?能否用在生产环境。

以前有php的实现过,是ixr的包。利用apache来处理http链接,而不是象上面
python实现独立的xmlrpc server。问一下python是否有类似的方式?


-- 
feihu <feihu.list在gmail.com>


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月07日 星期四 00:36

Bruce Wang number5在gmail.com
星期四 十二月 7 00:36:46 HKT 2006

On 12/6/06, feihu <feihu.list在gmail.com> wrote:
>
> ¸Õ×¼±¸ÊµÏÖÒ»¸öxmlrpc server£¬¿´ÁËÊֲᣬֱ½Ó¾ÍʹÓÃÁË import SimpleXMLRPCServer
> ½á¹û·¢ÏÖÖ»Êǵ¥Ï̵߳ġ£ËÑÁ˼¸¸ö¿ªÔ´µÄ£¬¼òµ¥ÊÔÓÃÁËһϣ¬·¢ÏÖÒ²Êǵ¥Ï̵߳ġ£
> ×îºóÕÒµ½Ò»ÆªhackÐÔÖʵģº
> http://mail.python.org/pipermail/python-list/2003-July/217125.html
>
>
²»ÖªµÀÄãµÄÓ¦Óò¢·¢ÒªÇóÓжà¸ß£¬twistedÓ¦¸Ã¿ÉÒÔÂú×㣬²»¹ý²»ÊǶàÏ̵߳ģ¬ÊÇÒì²½/·Ç×èÈû·½Ê½µÄ
http://twistedmatrix.com/projects/core/documentation/howto/tutorial/protocol.html#auto6

-- 
simple is good
http://brucewang.net
skype: number5
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061207/710739d9/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月07日 星期四 10:47

feihu feihu.list在gmail.com
星期四 十二月 7 10:47:57 HKT 2006

现在的项目是已有一些.so。做个接口把他们包起来,给其它client网络调用。
接口准备用xmlrpc。

因为是快速实现,而且除了调用so外,还有很多操作数据库的功能,所以就打算用
python来做,开始问了一些ctypes,pyrex的问题。希望用python作好的东西不是一
个原型,而是可以初期简单使用的东西。所以了解一下这样hack SimpleXmlRpcServer 
后是否稳定?

初期的量,希望能撑到每天10万的请求,并发3-4个就足够了(只要稳定)。等以
后量上来,再做重构,或者用c/C++来实现(还不知道什么时候能达到这个量)

还没有仔细看twisted,不知道是否太复杂,目前也用不上。

> On 12/6/06, feihu <feihu.list在gmail.com> wrote:
> >
> > 刚准备实现一个xmlrpc server,看了手册,直接就使用了 import SimpleXMLRPCServer
> > 结果发现只是单线程的。搜了几个开源的,简单试用了一下,发现也是单线程的。
> > 最后找到一篇hack性质的:
> > http://mail.python.org/pipermail/python-list/2003-July/217125.html
> >
> >
> 不知道你的应用并发要求有多高,twisted应该可以满足,不过不是多线程的,是异步/非阻塞方式的
> http://twistedmatrix.com/projects/core/documentation/howto/tutorial/protocol.html#auto6
> 
> -- 
> simple is good
> http://brucewang.net
> skype: number5

-- 
feihu <feihu.list在gmail.com>


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月07日 星期四 11:24

Leo Jay python.leojay在gmail.com
星期四 十二月 7 11:24:26 HKT 2006

On 12/6/06, feihu <feihu.list在gmail.com> wrote:
>
> 刚准备实现一个xmlrpc server,看了手册,直接就使用了 import SimpleXMLRPCServer
> 结果发现只是单线程的。搜了几个开源的,简单试用了一下,发现也是单线程的。
> 最后找到一篇hack性质的:http://mail.python.org/pipermail/python-list/2003-July/217125.html
>
> 使用SimpleXMLRPCServer.py的源码把里面 SocketServer.TCPServer 换成
> SocketServer.ThreadingTCPServer.就ok了。这也行?试了一下,好像真的可以。
>
> 对python的socket开发不熟悉。这样会有什么隐患吗?能否用在生产环境。
>
> 以前有php的实现过,是ixr的包。利用apache来处理http链接,而不是象上面
> python实现独立的xmlrpc server。问一下python是否有类似的方式?
>
>

改python自带的库文件总是不好的。
不如在自己的程序里写:
class ThreadedServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer):
     pass

然后:
server = ThreadedServer(("", config.port))
...


-- 
Best Regards,
Leo Jay

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年12月07日 星期四 13:16

feihu feihu.list在gmail.com
星期四 十二月 7 13:16:52 HKT 2006

哦,没有仔细说。我是把SimpleXmlRpcServer.py 另存为了另一个文件。
库里的文件没有动。

只是不知道这样小修改后,是否可以满足我一般强度的使用。

> 改python自带的库文件总是不好的。
> 不如在自己的程序里写:
> class ThreadedServer(SocketServer.ThreadingMixIn, SimpleXMLRPCServer):
>      pass
> 
> 然后:
> server = ThreadedServer(("", config.port))
> ...

-- 
feihu <feihu.list在gmail.com>


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号