我的main.py
:
while (True):
pulled = subscription.pull(max_messages=1) # also tried with return_immediately=True
for ack_id, data in pulled:
subscription.acknowledge([ack_id])
run_task() # takes 15 minutes to return
time.sleep(30)
我要做的是从队列中获取一条消息,立即确认,然后运行我的长期工作。
但是每一次,在run_task()
开始的10分钟后,subscription.pull
行出现以下错误:
“google.gax.errors.GaxError:GaxError(RPC失败,由 < _以(StatusCode.UNAVAILABLE结尾)终止的RPC的Rendezvous, {...“description”:“端点读取失败”...}
我可以说这个错误发生在run_task()
完成之前,但是run_task()
内没有抛出异常。我不知道run_task()
如何停止,pull()
现在正在执行。
谁能说出这里发生了什么?我有点认为消息没有被确认,确认截止日期到期,但消息永远不会被重新传递,因此理论不会加起来。