Skip to content

Commit f2898a3

Browse files
committed
samples: update to latest API changes
1 parent ce5e917 commit f2898a3

File tree

3 files changed

+64
-20
lines changed

3 files changed

+64
-20
lines changed

samples/closeSubscriptionWithTimeout.js

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@
3434
// -START pubsub_close_subscription_with_timeout]
3535

3636
// Imports the Google Cloud client library
37-
const {PubSub, Duration} = require('@google-cloud/pubsub');
37+
const {
38+
PubSub,
39+
Duration,
40+
SubscriptionCloseBehaviors,
41+
} = require('@google-cloud/pubsub');
3842

3943
// Creates a client; cache this for further use
4044
const pubsub = new PubSub();
@@ -45,17 +49,34 @@ async function closeSubscriptionWithTimeout(
4549
) {
4650
const topic = pubsub.topic(topicNameOrId);
4751

48-
const timeout = Duration.from({seconds: 10});
49-
const zeroTimeout = Duration.from({seconds: 0});
50-
5152
// Closes the subscription immediately, not waiting for anything.
52-
let subscription = topic.subscription(subscriptionNameOrId);
53-
await subscription.close({timeout: zeroTimeout});
53+
let subscription = topic.subscription(subscriptionNameOrId, {
54+
closeOptions: {
55+
timeout: Duration.from({seconds: 0}),
56+
},
57+
});
58+
await subscription.close();
5459

55-
// Shuts down the gRPC connection, sends nacks for buffered messages,
56-
// and closes the subscription after a set timeout.
57-
subscription = topic.subscription(subscriptionNameOrId);
58-
await subscription.close({timeout});
60+
// Shuts down the gRPC connection, and waits for just before the timeout
61+
// to send nacks for buffered messages. If `timeout` were missing, this
62+
// would wait for the maximum leasing timeout.
63+
subscription = topic.subscription(subscriptionNameOrId, {
64+
closeOptions: {
65+
behavior: SubscriptionCloseBehaviors.WaitForProcessing,
66+
timeout: Duration.from({seconds: 10}),
67+
},
68+
});
69+
await subscription.close();
70+
71+
// Shuts down the gRPC connection, sends nacks for buffered messages, and waits
72+
// through the timeout for nacks to send.
73+
subscription = topic.subscription(subscriptionNameOrId, {
74+
closeOptions: {
75+
behavior: SubscriptionCloseBehaviors.NackImmediately,
76+
timeout: Duration.from({seconds: 10}),
77+
},
78+
});
79+
await subscription.close();
5980
}
6081
// -END pubsub_close_subscription_with_timeout]
6182

samples/typescript/closeSubscriptionWithTimeout.ts

Lines changed: 31 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,11 @@
3030
// -START pubsub_close_subscription_with_timeout]
3131

3232
// Imports the Google Cloud client library
33-
import {PubSub, Duration} from '@google-cloud/pubsub';
33+
import {
34+
PubSub,
35+
Duration,
36+
SubscriptionCloseBehaviors,
37+
} from '@google-cloud/pubsub';
3438

3539
// Creates a client; cache this for further use
3640
const pubsub = new PubSub();
@@ -41,17 +45,34 @@ async function closeSubscriptionWithTimeout(
4145
) {
4246
const topic = pubsub.topic(topicNameOrId);
4347

44-
const timeout = Duration.from({seconds: 10});
45-
const zeroTimeout = Duration.from({seconds: 0});
46-
4748
// Closes the subscription immediately, not waiting for anything.
48-
let subscription = topic.subscription(subscriptionNameOrId);
49-
await subscription.close({timeout: zeroTimeout});
49+
let subscription = topic.subscription(subscriptionNameOrId, {
50+
closeOptions: {
51+
timeout: Duration.from({seconds: 0}),
52+
},
53+
});
54+
await subscription.close();
5055

51-
// Shuts down the gRPC connection, sends nacks for buffered messages,
52-
// and closes the subscription after a set timeout.
53-
subscription = topic.subscription(subscriptionNameOrId);
54-
await subscription.close({timeout});
56+
// Shuts down the gRPC connection, and waits for just before the timeout
57+
// to send nacks for buffered messages. If `timeout` were missing, this
58+
// would wait for the maximum leasing timeout.
59+
subscription = topic.subscription(subscriptionNameOrId, {
60+
closeOptions: {
61+
behavior: SubscriptionCloseBehaviors.WaitForProcessing,
62+
timeout: Duration.from({seconds: 10}),
63+
},
64+
});
65+
await subscription.close();
66+
67+
// Shuts down the gRPC connection, sends nacks for buffered messages, and waits
68+
// through the timeout for nacks to send.
69+
subscription = topic.subscription(subscriptionNameOrId, {
70+
closeOptions: {
71+
behavior: SubscriptionCloseBehaviors.NackImmediately,
72+
timeout: Duration.from({seconds: 10}),
73+
},
74+
});
75+
await subscription.close();
5576
}
5677
// -END pubsub_close_subscription_with_timeout]
5778

src/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,8 @@ export {
143143
SubscriptionMetadata,
144144
SubscriptionOptions,
145145
SubscriptionCloseCallback,
146+
SubscriptionCloseOptions,
147+
SubscriptionCloseBehaviors,
146148
CreateSubscriptionOptions,
147149
CreateSubscriptionCallback,
148150
CreateSubscriptionResponse,

0 commit comments

Comments
 (0)