Skip to content

Commit 3a7eb2a

Browse files
noerogJon Wayne Parrott
authored and
Jon Wayne Parrott
committed
Add sample for updating a subscription. (#1335)
1 parent a194aa7 commit 3a7eb2a

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

pubsub/cloud-client/subscriber.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,34 @@ def delete_subscription(project, subscription_name):
8989
print('Subscription deleted: {}'.format(subscription_path))
9090

9191

92+
def update_subscription(project, subscription_name, ack_deadline_seconds):
93+
"""
94+
Updates an existing Pub/Sub subscription's ackDeadlineSeconds
95+
from 10 seconds (default). Note that certain properties of a
96+
subscription, such as its topic, are not modifiable.
97+
"""
98+
subscriber = pubsub_v1.SubscriberClient()
99+
subscription_path = subscriber.subscription_path(
100+
project, subscription_name)
101+
102+
subscription = pubsub_v1.types.Subscription(
103+
name=subscription_path,
104+
ack_deadline_seconds=ack_deadline_seconds)
105+
106+
update_mask = {
107+
'paths': {
108+
'ack_deadline_seconds',
109+
}
110+
}
111+
112+
subscriber.update_subscription(subscription, update_mask)
113+
result = subscriber.get_subscription(subscription_path)
114+
115+
print('Subscription updated: {}'.format(subscription_path))
116+
print('New ack_deadline_seconds value is: {}'.format(
117+
result.ack_deadline_seconds))
118+
119+
92120
def receive_messages(project, subscription_name):
93121
"""Receives messages from a pull subscription."""
94122
subscriber = pubsub_v1.SubscriberClient()
@@ -183,6 +211,11 @@ def callback(message):
183211
'delete', help=delete_subscription.__doc__)
184212
delete_parser.add_argument('subscription_name')
185213

214+
update_parser = subparsers.add_parser(
215+
'update', help=update_subscription.__doc__)
216+
update_parser.add_argument('subscription_name')
217+
update_parser.add_argument('ack_deadline_seconds', type=int)
218+
186219
receive_parser = subparsers.add_parser(
187220
'receive', help=receive_messages.__doc__)
188221
receive_parser.add_argument('subscription_name')
@@ -214,6 +247,9 @@ def callback(message):
214247
elif args.command == 'delete':
215248
delete_subscription(
216249
args.project, args.subscription_name)
250+
elif args.command == 'update':
251+
update_subscription(
252+
args.project, args.subscription_name, args.ack_deadline_seconds)
217253
elif args.command == 'receive':
218254
receive_messages(args.project, args.subscription_name)
219255
elif args.command == 'receive-flow-control':

0 commit comments

Comments
 (0)