googleapis / googleapis/google-cloud-python

Async Streaming Pull Usage

Đang mở
#15,644 2 bình luận 1 reaction 1 người được giao Được @abbrowne126 nhận Xem trên GitHub
api: pubsub
Ngôn ngữ chính
Python
Star
5.4k
Fork
1.8k
Merge trung bình
3 ngày 4 giờ
Pull request đã merge (30 ngày)
122

Mô tả

Has someone used this in peoduction scenarios? I am stuck and unable to pull messages using the async streaming client and any help would be benefecial.

Is wrapping the standard streaming pull in an asyncio executor gonna give me the same behaviour as below client?

https://github.com/googleapis/python-pubsub/blob/ff229a5fdd4deaff0ac97c74f313d04b62720ff7/google/pubsub_v1/services/subscriber/async_client.py#L1368

This is my current usage:
```python
from google import pubsub_v1
subscriber = pubsub_v1.SubscriberAsyncClient() #skipping the class code but this is the Subscriber client
async def fetch_and_decode_msgs(self):
try:
print(f"Listening for messages on {self.subscription_path}...")
request = pubsub_v1.StreamingPullRequest(
subscription=self.subscription_path,
)

# Not sure if there is any other way to do this
async def request_generator():
yield request
print(f"stream: {request}"). # Code gets blocked here

stream = await self.subscriber.streaming_pull(requests=request_generator())
print(f"stream: {stream}")
# Handle the response
async for response in stream:
for received_message in response.received_messages:
print("Received message: ", received_message.message.data.decode('utf-8'))
except Exception as e:
raise e
```

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.