Возвращаемое значение из функции обратного вызова pubsub - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь получить значение из функции обратного вызова pubsub.

Если я печатаю message.data в функции обратного вызова, я могу увидеть данные. Я пробовал хоть stream_pull_future и делал класс python, но безуспешно.

project = 'project_id'
topic = 'topic'
subscription = "sub"
timeout = 10.0

subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path(
    project, subscription
)


def test_callback():
    callback_class = CallBackMethod()
    streaming_pull_future = subscriber.subscribe(
        subscription_path, callback=callback_class.callback()
    )

    time.sleep(30)

    print("streaming", streaming_pull_future.result())
    print("streaming_timeout", streaming_pull_future.result(timeout=timeout))

    decoded_string = streaming_pull_future.decode('utf-8')
    print("decoded_string", decoded_string)

    # other stuff with string


class CallBackMethod:
    def __init__(self, data=None):
        self.data = data

    @classmethod
    def callback(cls, message=None):
        info("Got message {}".format(message))
        if message is None:
            return
        return cls(message.data)
...