服务器的响应一直一直发送不过去,zeroRPC:在发送响应后继续运行进程
我使用Python2.7和zeroRPC使客戶機(jī)和服務(wù)器通信。我希望客戶端向服務(wù)器發(fā)送一個(gè)請(qǐng)求,我希望服務(wù)器發(fā)送一個(gè)響應(yīng)以確認(rèn)它已收到請(qǐng)求。但是我希望服務(wù)器對(duì)該請(qǐng)求執(zhí)行一些繁重的計(jì)算。這些計(jì)算將花費(fèi)數(shù)小時(shí),并且不會(huì)產(chǎn)生任何響應(yīng),因此客戶機(jī)不應(yīng)該一直等待;客戶機(jī)-服務(wù)器連接應(yīng)該在服務(wù)器確認(rèn)收到請(qǐng)求后立即終止。我該怎么做?在
這是我現(xiàn)在所擁有的(簡(jiǎn)化)。在
服務(wù)器代碼:impor time
import zerorpc
class HelloRPC(object):
def hey(self, name):
print 'Hey, %s' % name # just so I can check that the request was received
# send response confirming that request was received
# terminate connection
time.sleep(100000000000000) # some heavy computations
s = zerorpc.Server(HelloRPC())
s.bind('tcp://0.0.0.0:4242')
s.run()
客戶代碼:
^{pr2}$
它不起作用:我得到zerorpc.exceptions.LostRemote: Lost remote after 10s heartbeat。我知道我可以使用heartbeat參數(shù)使連接無(wú)限期地持續(xù),但是正如我所說(shuō)的,計(jì)算將花費(fèi)數(shù)小時(shí)并且不會(huì)產(chǎn)生任何響應(yīng),因此我認(rèn)為我不應(yīng)該保持連接的有效性。在
我讀過(guò)gevent,但是我不知道如何使用它來(lái)達(dá)到這個(gè)目的(它甚至是這個(gè)工作的正確工具嗎?)。我應(yīng)該使用Python的多處理包生成子進(jìn)程還是類似的東西?這種事怎么辦?在
總結(jié)
以上是生活随笔為你收集整理的服务器的响应一直一直发送不过去,zeroRPC:在发送响应后继续运行进程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 小程序和app用什么样的服务器,小程序和
- 下一篇: 服务器连接不稳定fifa,fifa服务器