Как заставить подписчика спать, если в Google PUBSUB нет сообщений от издателя

Я использую Google PubSub Publisher, чтобы вызвать уведомление и отправить сообщение подписчику, когда документ был загружен в Google Cloud Storage Bucket.

Я создал тему уведомлений с помощью -> gsutil messages create -t ​​[TOPIC_NAME] -f json -e OBJECT_FINALIZE gs: // [BUCKET_NAME]

Моя функция подписчика: **

def callback(message):
    try:
        #storage_client = storage.Client.from_service_account_json('storage_service_key.json')
        print('Received message: {}'.format(message.data.decode("utf-8")))
        data = json.loads(message.data.decode("utf-8"))

        filename = data['name']
        file_name = re.search(r'/(.*)', filename).group(1)
        #filelink = data['selfLink']
        print("Processing the file : {}".format(file_name))
        path = "sample/"+file_name
        download_files(path, file_name)
        rming.image_remover(file_name) ## my custom function
        message.ack()
        os.remove(file_name)


    except Exception as error_message:
         print("Error in callback method: {}".format(error_message))
         pass


flow_control = pubsub_v1.types.FlowControl(max_messages=1)

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path(proj_name, sub_name)

streaming_pull_future = subscriber.subscribe(
    subscription_path, callback=callback,flow_control=flow_control
)
print('Listening for messages on: {}'.format(subscription_path))
with subscriber:
    try:
        # When `timeout` is not set, result() will block indefinitely,
        # unless an exception is encountered first.
        #flag=0
        streaming_pull_future.result()
    except Exception as error_message:  # noqa
        print("exception occured while handling subscription: {}").format(error_message)
        pass

** Я хочу развернуть эту функцию подписчика в док-контейнере. После этого Абонент будет работать круглосуточно.

Могу ли я перевести абонента в спящий режим / (не делать запрос на извлечение) в Publisher, если нет доступных сообщений ИЛИ Мой смысл в другом термине заключается в том, могу ли я перевести абонента в спящий режим в период простоя, когда нет входящих сообщений.

Любая помощь приветствуется !!!!

Всего 1 ответ


Кроме того, и в резюме комментариев, есть много вещей,

Cloud Run масштабируется до 0, и вы можете только время обработки, округленное до верхних 100 мс. Он спит и ничего не стоит, когда нет сообщения.


Есть идеи?

10000