Google Cloud PubSub Error: Deadline Exceeded

Google Cloud PubSub Error: Deadline Exceeded

我有一个向 PubSub 主题发布消息的简单服务,偶尔会收到 "Deadline Exceeded" 错误消息:

GaxError(RPC failed, caused by <_Rendezvous of RPC that terminated with (StatusCode.DEADLINE_EXCEEDED, Deadline Exceeded)>)

Python代码:

from google.cloud import pubsub
pubsub_client = pubsub.Client()
topic = pubsub_client.topic("pubsub-topic")
data = data.encode('utf-8')
message_id = topic.publish(data)

它每秒从 Flask 网络应用程序发布几条消息,可能有几百条消息因该错误而失败。

原来我创建了太多 PubSub 客户端!

我将这部分移到了函数/路由之外,这样主题和客户端就是全局变量,不会在每次调用时都被初始化:

pubsub_client = pubsub.Client()
topic = pubsub_client.topic("pubsub-topic")

(实例化 Flask 之后):

app = Flask(__name__)