googleapis / googleapis/google-cloud-python

Asyncio coroutines for common tasks

Offen
#15,653 14 Kommentare 15 Reaktionen 1 zugewiesene Person Beansprucht von @abbrowne126 Auf GitHub ansehen
api: pubsub type: feature request
Vorherrschende Sprache
Python
Sterne
5.4k
Forks
1.8k
Ø Merge
3 T. 4 Std.
Gemergte PRs (30 T.)
122

Beschreibung

The current status of asyncio has mostly been answered here already: https://github.com/googleapis/python-pubsub/issues/218#issuecomment-760778351

This feature request is to ask for a formal exposure of high-level awaitable methods for interacting with the PubSub library and reducing the use of threads. Although, if the library still wants to manage threads, that seems fine as long as how we use the library would be awaitable and the callback are run in the same event loop. I don't want to be too prescriptive on the implementation in my request.

Some examples, assuming `SubscriberClient` and `PublisherClient` were already setup...

example subscribe:

```python
async def my_func(msg):
# ... do something
pass

subscription_path = f"projects/{project_id}/subscriptions/{subscription}"
streaming_pull_async = subscriber.subscribe_async(subscription_path, callback=my_func,)

try:
await streaming_pull_async.result(timeout=pull_timeout)
except TimeoutError:
# Handle flow timeout
pass
```

example publish:

```python
topic_path = f"projects/{project_id}/topics/{output_topic}"
publish_value_async = publisher.publish_async(topic_path, value)
await publish_value_async.result()
```

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.