Ошибка значения («Не удается вызвать RPC: канал закрыт!») при одновременном запуске нескольких процессов

# #google-cloud-platform #google-cloud-endpoints #google-cloud-pubsub

#google-облачная платформа #google-облачные конечные точки #google-облако-pubsub

Вопрос:

Я получаю эту ошибку, когда запускаю с нуля более 4 синхронизированных процессов:

 {  "insertId": "61a4a4920009771002b74809",  "jsonPayload": {  "asctime": "2021-11-29 09:59:46,620",  "message": "Exception in callback lt;bound method ResumableBidiRpc._on_call_done of lt;google.api_core.bidi.ResumableBidiRpc object at 0x3eb1636b2cd0gt;gt;: ValueError('Cannot invoke RPC: Channel closed!')",  "funcName": "handle_event",  "lineno": 183,  "filename": "_channel.py"  }  

Это схема pub-sub: паб-подсхема

Ошибка, по — видимому, возникает на шаге 9 или 10. Фактический код таков:

 future = publisher.publish(  topic_path,  encoded_message,  msg_attribute=message_key  )    future.add_done_callback(  callback=lambda f:  logging.info(...)  )   subscriber = pubsub_v1.SubscriberClient()  subscription_path = subscriber.subscription_path(  PROJECT_ID,  "..."  )   streaming_pull_future = subscriber.subscribe(  subscription_path,  callback=aggregator_callback_handler.handle_message  )  aggregator_callback_handler.callback = streaming_pull_future    wait_result(  timeout=300,  pratica=...,  f_check_res_condition=lambda: aggregator_callback_handler.response is not None  )   streaming_pull_future.cancel()  subscriber.close()   

Модуль aggregator_callback_handler обрабатывает .нак и .ак.

Ошибка возвращается в течение нескольких секунд, затем виртуальные машины, на которых размещены службы, масштабируются, и ошибка прекращается. То же самое, если вместо того, чтобы запускать процессы все вместе, я масштабирую их вручную, запуская их один за другим и оставляя некоторое время между ними.

Я уже проверил тайм-ауты и вывел подписчика за пределы контекстного менеджера, но эти решения не работают.

Есть идеи, как с этим справиться?