gpt4 book ai didi

python - 执行所有函数代码之前的 XML-RPC 返回值

转载 作者:行者123 更新时间:2023-11-28 22:04:28 25 4
gpt4 key购买 nike

我有 XML-RPC 服务器:

import time

import xmlrpclib
from SimpleXMLRPCServer import SimpleXMLRPCServer

class Worker(object):
def start_work(self):
# is it possible do return value to client here?
self.do_work()
return 'we started!'

def do_work(self):
while(True):
print 'I\'m doing work...'
time.sleep(3)


if __name__ == '__main__':
port = 8080
server = SimpleXMLRPCServer(("localhost", port))
print "Listening on port %s..." % port

w = Worker()

server.register_function(w.start_work)
while(1):
server.handle_request()

# vim: filetype=python syntax=python expandtab shiftwidth=4 softtabstop=4 encoding=utf8

简单的客户端:

import xmlrpclib
c = xmlrpclib.ServerProxy('http://localhost:8080/')
print c.start_work()

当然,start_work 函数返回的值永远不会被打印出来。

我的问题是如何重写服务器代码以在完成工作之前返回值。我知道我可以为此使用线程,但我想确保没有更简单的方法。

最佳答案

如果您希望 XML-RPC 具有长时间运行、提前返回的任务,您可能需要将服务器重写为异步框架,例如 twisted

关于python - 执行所有函数代码之前的 XML-RPC 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7106422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com