Skip to content

Commit

Permalink
Add listen for errors sample. [(#1306)](GoogleCloudPlatform/python-do…
Browse files Browse the repository at this point in the history
…cs-samples#1306)

* Add listen for errors sample.

* Update subscriber.py

* Update subscriber.py
  • Loading branch information
noerog authored and plamut committed Jul 10, 2020
1 parent 3c2f02a commit 464500f
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions samples/snippets/subscriber.py
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,30 @@ def callback(message):
time.sleep(60)


def listen_for_errors(project, subscription_name):
"""Receives messages and catches errors from a pull subscription."""
subscriber = pubsub_v1.SubscriberClient()
subscription_path = subscriber.subscription_path(
project, subscription_name)

def callback(message):
print('Received message: {}'.format(message))
message.ack()

subscription = subscriber.subscribe(subscription_path, callback=callback)

# Blocks the thread while messages are coming in through the stream. Any
# exceptions that crop up on the thread will be set on the future.
future = subscription.open(callback)
try:
future.result()
except Exception as e:
print(
'Listening for messages on {} threw an Exception: {}.'.format(
subscription_name, e))
raise


if __name__ == '__main__':
parser = argparse.ArgumentParser(
description=__doc__,
Expand Down Expand Up @@ -143,6 +167,10 @@ def callback(message):
help=receive_messages_with_flow_control.__doc__)
receive_with_flow_control_parser.add_argument('subscription_name')

listen_for_errors_parser = subparsers.add_parser(
'listen_for_errors', help=listen_for_errors.__doc__)
listen_for_errors_parser.add_argument('subscription_name')

args = parser.parse_args()

if args.command == 'list_in_topic':
Expand All @@ -160,3 +188,5 @@ def callback(message):
elif args.command == 'receive-flow-control':
receive_messages_with_flow_control(
args.project, args.subscription_name)
elif args.command == 'listen_for_errors':
listen_for_errors(args.project, args.subscription_name)

0 comments on commit 464500f

Please sign in to comment.