SimpleXMLRPCServer
Rembrandt Q Einstein
hercules.rockefeller at springfield.??.us
Tue Sep 28 07:48:40 EDT 2004
Jeremy Jones wrote:
> PhysicsGenius wrote:
>
>> Jeremy Jones wrote:
>>
>>> Istvan Albert wrote:
>>>
>>>> Yannick Turgeon wrote:
>>>>
>>>>> "Simple". What are its limitations?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> No limitations whatsoever ... it is "Simple" to use
>>>>
>>>> :-0
>>>>
>>>> Istvan.
>>>>
>>> Simple indeed. I don't know for sure the reasons for naming it
>>> "Simple". But it may have to do with the fact that the
>>> out-of-the-box SimpleXMLRPCServer will only handle one request at a
>>> time: a request comes in, the server accepts that request, blocking
>>> until the method call returns, and the response is sent back to the
>>> client. It does not spawn a thread per request. It does not
>>> "select" among multiple requests. It will not create a thread pool
>>> for you. If you want that added functionality, you can write a
>>> little custom code to get it to spawn a thread per request. A little
>>> more code to only spawn n number of threads. A little more code
>>> still to create a thread pool. And if you want a server that
>>> "select"s among multiple requests, I'm not 100% sure, but I bet
>>> Twisted has one of those.
>>
>>
>>
>> I have a non-threaded, select()ing SimpleXML-RPC server. I have
>> stressed it yet, but I have verified that the concept works.
>
>
> Is this something that you wrote, or are you using Twisted? If it's
> something you wrote, I'd love to see the code for it.
>
> Jeremy
>
Maybe "server" is too grand a term. This is running inside an actual
server, but this is really just a snippet of code for doing select() on
an XML-RPC server socket.
server = XMLRPCServer.XMLRPCServer((ipAddr, port), logRequests=False)
while(True):
inputs, outputs, exceptions =
select.select([server.fileno(),],[], [],
configOptions['tick'])
if inputs:
server.handle_request()
More information about the Python-list
mailing list