服务器的响应一直一直发送不过去,zeroRPC:在发送响应后继续运行进程
我使用Python2.7和zeroRPC使客戶機和服務器通信。我希望客戶端向服務器發送一個請求,我希望服務器發送一個響應以確認它已收到請求。但是我希望服務器對該請求執行一些繁重的計算。這些計算將花費數小時,并且不會產生任何響應,因此客戶機不應該一直等待;客戶機-服務器連接應該在服務器確認收到請求后立即終止。我該怎么做?在
這是我現在所擁有的(簡化)。在
服務器代碼: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參數使連接無限期地持續,但是正如我所說的,計算將花費數小時并且不會產生任何響應,因此我認為我不應該保持連接的有效性。在
我讀過gevent,但是我不知道如何使用它來達到這個目的(它甚至是這個工作的正確工具嗎?)。我應該使用Python的多處理包生成子進程還是類似的東西?這種事怎么辦?在
總結
以上是生活随笔為你收集整理的服务器的响应一直一直发送不过去,zeroRPC:在发送响应后继续运行进程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小程序和app用什么样的服务器,小程序和
- 下一篇: 服务器连接不稳定fifa,fifa服务器