sau*_*d91 8 python celery grpc
我正在尝试连接到芹菜任务中的GRPC服务器.我有以下代码
timeout = 1
host = '0.tcp.ngrok.io'
port = '7145'
channel = grpc.insecure_channel('{0}:{1}'.format(host, port))
try:
grpc.channel_ready_future(channel).result(timeout=timeout)
except grpc.FutureTimeoutError:
sys.exit(1)
stub = stub(channel)
Run Code Online (Sandbox Code Playgroud)
当我通过Python shell运行此代码段时,我能够建立连接,并执行GRPC方法.但是,当我通过Celery任务运行时,我得到了grpc.FutureTimeoutError,并且连接没有建立.
Celery工作人员与grpc服务器位于同一台机器上.我尝试使用该socket库来ping GRPC服务器,这是有效的(它返回了一些垃圾响应).
我正在使用Python 2.7,grpcio==1.6.0已安装.Celery版本是4.1.0.任何指针都会有所帮助.
小智 7
我相信 Celery 在底层使用 fork,而 gRPC 1.6 不支持任何 fork 行为。
尝试更新到 gRPC 1.7。