芹菜任务中的grpc超时

时间:2017-11-08 19:35:46

标签: 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)

当我通过Python shell运行此代码段时,我能够建立连接,并执行GRPC方法。但是,当我通过Celery任务运行时,我得到了grpc.FutureTimeoutError,并且连接没有建立。

Celery工作人员与grpc服务器位于同一台计算机上。我尝试使用socket库来ping GRPC服务器,这很有效(它返回了一些垃圾响应)。

我正在使用安装了grpcio==1.6.0的Python 2.7。 Celery版本是4.1.0。任何指针都会有所帮助。

1 个答案:

答案 0 :(得分:4)

我相信Celery在引擎盖下使用了叉子,gRPC 1.6不支持任何分叉行为。

尝试更新到gRPC 1.7。