google-cloud-pubsub 1.7.1 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +12 -0
- data/lib/google/cloud/pubsub/service.rb +5 -8
- data/lib/google/cloud/pubsub/subscriber/stream.rb +2 -0
- data/lib/google/cloud/pubsub/subscription.rb +12 -0
- data/lib/google/cloud/pubsub/topic.rb +6 -3
- data/lib/google/cloud/pubsub/v1/doc/google/pubsub/v1/pubsub.rb +35 -9
- data/lib/google/cloud/pubsub/v1/subscriber_client.rb +12 -9
- data/lib/google/cloud/pubsub/version.rb +1 -1
- data/lib/google/pubsub/v1/pubsub_pb.rb +3 -0
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dfbd62e0e48c406ed08325e5a216f03a0afc4f8319c5ef144fbb6b1fa189e16c
|
4
|
+
data.tar.gz: 31995baf9d81c17e1c867efb5584da5d0be27e1baa3bfa256311e803d43cbfb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8d50149459ec7bc696a15785ae7f0d77777d9f95edefb4da0775f9e005c25cd8cfe17d20899649fb17c6fc928eb9e0bbc0baddce26afc773d300c54728b04bd6
|
7
|
+
data.tar.gz: b599664094c01fc88030478e9076ad72a73ceb6bb3aa4b3a64240193694f0d47f6a34bbbd2ab8ce1188c45d6bbd6322d91e91f157362de0a8a6307c002e6084a
|
data/CHANGELOG.md
CHANGED
@@ -241,20 +241,17 @@ module Google
|
|
241
241
|
push_endpoint: options[:endpoint],
|
242
242
|
attributes: (options[:attributes] || {}).to_h
|
243
243
|
end
|
244
|
-
deadline = options[:deadline]
|
245
|
-
retain_acked = options[:retain_acked]
|
246
244
|
mrd = Convert.number_to_duration options[:retention]
|
247
|
-
labels = options[:labels]
|
248
|
-
message_ordering = options[:message_ordering]
|
249
245
|
execute do
|
250
246
|
subscriber.create_subscription \
|
251
247
|
name, topic,
|
252
248
|
push_config: push_config,
|
253
|
-
ack_deadline_seconds: deadline,
|
254
|
-
retain_acked_messages: retain_acked,
|
249
|
+
ack_deadline_seconds: options[:deadline],
|
250
|
+
retain_acked_messages: options[:retain_acked],
|
255
251
|
message_retention_duration: mrd,
|
256
|
-
labels: labels,
|
257
|
-
enable_message_ordering: message_ordering,
|
252
|
+
labels: options[:labels],
|
253
|
+
enable_message_ordering: options[:message_ordering],
|
254
|
+
filter: options[:filter],
|
258
255
|
dead_letter_policy: dead_letter_policy(options),
|
259
256
|
retry_policy: options[:retry_policy],
|
260
257
|
options: default_options
|
@@ -364,6 +364,8 @@ module Google
|
|
364
364
|
req.modify_deadline_ack_ids += @inventory.ack_ids
|
365
365
|
req.modify_deadline_seconds += @inventory.ack_ids.map { @subscriber.deadline }
|
366
366
|
req.client_id = @subscriber.service.client_id
|
367
|
+
req.max_outstanding_messages = @inventory.limit
|
368
|
+
req.max_outstanding_bytes = @inventory.bytesize
|
367
369
|
end
|
368
370
|
end
|
369
371
|
|
@@ -353,6 +353,18 @@ module Google
|
|
353
353
|
@resource_name = nil
|
354
354
|
end
|
355
355
|
|
356
|
+
##
|
357
|
+
# An expression written in the Cloud Pub/Sub filter language. If non-empty, then only {Message} instances whose
|
358
|
+
# `attributes` field matches the filter are delivered on this subscription. If empty, then no messages are
|
359
|
+
# filtered out.
|
360
|
+
#
|
361
|
+
# @return [String] The frozen filter string.
|
362
|
+
#
|
363
|
+
def filter
|
364
|
+
ensure_grpc!
|
365
|
+
@grpc.filter.freeze
|
366
|
+
end
|
367
|
+
|
356
368
|
##
|
357
369
|
# Returns the {Topic} to which dead letter messages should be published if a dead letter policy is configured,
|
358
370
|
# otherwise `nil`. Dead lettering is done on a best effort basis. The same message might be dead lettered
|
@@ -286,6 +286,9 @@ module Google
|
|
286
286
|
# Managing Labels](https://cloud.google.com/pubsub/docs/labels).
|
287
287
|
# @param [Boolean] message_ordering Whether to enable message ordering
|
288
288
|
# on the subscription.
|
289
|
+
# @param [String] filter An expression written in the Cloud Pub/Sub filter language. If non-empty, then only
|
290
|
+
# {Message} instances whose `attributes` field matches the filter are delivered on this subscription. If
|
291
|
+
# empty, then no messages are filtered out. Optional.
|
289
292
|
# @param [Topic] dead_letter_topic The {Topic} to which dead letter messages for the subscription should be
|
290
293
|
# published. Dead lettering is done on a best effort basis. The same message might be dead lettered multiple
|
291
294
|
# times. The Cloud Pub/Sub service account associated with the enclosing subscription's parent project (i.e.,
|
@@ -359,11 +362,11 @@ module Google
|
|
359
362
|
# sub = topic.subscribe "my-topic-sub", retry_policy: retry_policy
|
360
363
|
#
|
361
364
|
def subscribe subscription_name, deadline: nil, retain_acked: false, retention: nil, endpoint: nil, labels: nil,
|
362
|
-
message_ordering: nil,
|
363
|
-
retry_policy: nil
|
365
|
+
message_ordering: nil, filter: nil, dead_letter_topic: nil,
|
366
|
+
dead_letter_max_delivery_attempts: nil, retry_policy: nil
|
364
367
|
ensure_service!
|
365
368
|
options = { deadline: deadline, retain_acked: retain_acked, retention: retention, endpoint: endpoint,
|
366
|
-
labels: labels, message_ordering: message_ordering,
|
369
|
+
labels: labels, message_ordering: message_ordering, filter: filter,
|
367
370
|
dead_letter_max_delivery_attempts: dead_letter_max_delivery_attempts }
|
368
371
|
options[:dead_letter_topic_name] = dead_letter_topic.name if dead_letter_topic
|
369
372
|
if options[:dead_letter_max_delivery_attempts] && !options[:dead_letter_topic_name]
|
@@ -17,6 +17,7 @@ module Google
|
|
17
17
|
module Cloud
|
18
18
|
module PubSub
|
19
19
|
module V1
|
20
|
+
# A policy constraining the storage of messages published to the topic.
|
20
21
|
# @!attribute [rw] allowed_persistence_regions
|
21
22
|
# @return [Array<String>]
|
22
23
|
# A list of IDs of GCP regions where messages that are published to the topic
|
@@ -67,7 +68,8 @@ module Google
|
|
67
68
|
# @!attribute [rw] attributes
|
68
69
|
# @return [Hash{String => String}]
|
69
70
|
# Attributes for this message. If this field is empty, the message must
|
70
|
-
# contain non-empty data.
|
71
|
+
# contain non-empty data. This can be used to filter messages on the
|
72
|
+
# subscription.
|
71
73
|
# @!attribute [rw] message_id
|
72
74
|
# @return [String]
|
73
75
|
# ID of this message, assigned by the server when the message is published.
|
@@ -306,13 +308,11 @@ module Google
|
|
306
308
|
# value for `expiration_policy.ttl` is 1 day.
|
307
309
|
# @!attribute [rw] filter
|
308
310
|
# @return [String]
|
309
|
-
# An expression written in the
|
311
|
+
# An expression written in the Pub/Sub [filter
|
312
|
+
# language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
|
310
313
|
# then only `PubsubMessage`s whose `attributes` field matches the filter are
|
311
314
|
# delivered on this subscription. If empty, then no messages are filtered
|
312
315
|
# out.
|
313
|
-
# <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
|
314
|
-
# API might be changed in backward-incompatible ways and is not recommended
|
315
|
-
# for production use. It is not subject to any SLA or deprecation policy.
|
316
316
|
# @!attribute [rw] dead_letter_policy
|
317
317
|
# @return [Google::Cloud::PubSub::V1::DeadLetterPolicy]
|
318
318
|
# A policy that specifies the conditions for dead lettering messages in
|
@@ -325,16 +325,20 @@ module Google
|
|
325
325
|
# permission to Acknowledge() messages on this subscription.
|
326
326
|
# @!attribute [rw] retry_policy
|
327
327
|
# @return [Google::Cloud::PubSub::V1::RetryPolicy]
|
328
|
-
# A policy that specifies how
|
328
|
+
# A policy that specifies how Pub/Sub retries message delivery for this
|
329
329
|
# subscription.
|
330
330
|
#
|
331
331
|
# If not set, the default retry policy is applied. This generally implies
|
332
332
|
# that messages will be retried as soon as possible for healthy subscribers.
|
333
333
|
# RetryPolicy will be triggered on NACKs or acknowledgement deadline
|
334
334
|
# exceeded events for a given message.
|
335
|
-
#
|
336
|
-
#
|
337
|
-
#
|
335
|
+
# @!attribute [rw] detached
|
336
|
+
# @return [true, false]
|
337
|
+
# Indicates whether the subscription is detached from its topic. Detached
|
338
|
+
# subscriptions don't receive messages from their topic and don't retain any
|
339
|
+
# backlog. `Pull` and `StreamingPull` requests will return
|
340
|
+
# FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
|
341
|
+
# the endpoint will not be made.
|
338
342
|
class Subscription; end
|
339
343
|
|
340
344
|
# A policy that specifies how Cloud Pub/Sub retries message delivery.
|
@@ -661,6 +665,28 @@ module Google
|
|
661
665
|
# to the same value so that state associated with the old stream can be
|
662
666
|
# transferred to the new stream. The same client_id should not be used for
|
663
667
|
# different client instances.
|
668
|
+
# @!attribute [rw] max_outstanding_messages
|
669
|
+
# @return [Integer]
|
670
|
+
# Flow control settings for the maximum number of outstanding messages. When
|
671
|
+
# there are `max_outstanding_messages` or more currently sent to the
|
672
|
+
# streaming pull client that have not yet been acked or nacked, the server
|
673
|
+
# stops sending more messages. The sending of messages resumes once the
|
674
|
+
# number of outstanding messages is less than this value. If the value is
|
675
|
+
# <= 0, there is no limit to the number of outstanding messages. This
|
676
|
+
# property can only be set on the initial StreamingPullRequest. If it is set
|
677
|
+
# on a subsequent request, the stream will be aborted with status
|
678
|
+
# `INVALID_ARGUMENT`.
|
679
|
+
# @!attribute [rw] max_outstanding_bytes
|
680
|
+
# @return [Integer]
|
681
|
+
# Flow control settings for the maximum number of outstanding bytes. When
|
682
|
+
# there are `max_outstanding_bytes` or more worth of messages currently sent
|
683
|
+
# to the streaming pull client that have not yet been acked or nacked, the
|
684
|
+
# server will stop sending more messages. The sending of messages resumes
|
685
|
+
# once the number of outstanding bytes is less than this value. If the value
|
686
|
+
# is <= 0, there is no limit to the number of outstanding bytes. This
|
687
|
+
# property can only be set on the initial StreamingPullRequest. If it is set
|
688
|
+
# on a subsequent request, the stream will be aborted with status
|
689
|
+
# `INVALID_ARGUMENT`.
|
664
690
|
class StreamingPullRequest; end
|
665
691
|
|
666
692
|
# Response for the `StreamingPull` method. This response is used to stream
|
@@ -510,13 +510,11 @@ module Google
|
|
510
510
|
# A hash of the same form as `Google::Cloud::PubSub::V1::ExpirationPolicy`
|
511
511
|
# can also be provided.
|
512
512
|
# @param filter [String]
|
513
|
-
# An expression written in the
|
513
|
+
# An expression written in the Pub/Sub [filter
|
514
|
+
# language](https://cloud.google.com/pubsub/docs/filtering). If non-empty,
|
514
515
|
# then only `PubsubMessage`s whose `attributes` field matches the filter are
|
515
516
|
# delivered on this subscription. If empty, then no messages are filtered
|
516
517
|
# out.
|
517
|
-
# <b>EXPERIMENTAL:</b> This feature is part of a closed alpha release. This
|
518
|
-
# API might be changed in backward-incompatible ways and is not recommended
|
519
|
-
# for production use. It is not subject to any SLA or deprecation policy.
|
520
518
|
# @param dead_letter_policy [Google::Cloud::PubSub::V1::DeadLetterPolicy | Hash]
|
521
519
|
# A policy that specifies the conditions for dead lettering messages in
|
522
520
|
# this subscription. If dead_letter_policy is not set, dead lettering
|
@@ -529,18 +527,21 @@ module Google
|
|
529
527
|
# A hash of the same form as `Google::Cloud::PubSub::V1::DeadLetterPolicy`
|
530
528
|
# can also be provided.
|
531
529
|
# @param retry_policy [Google::Cloud::PubSub::V1::RetryPolicy | Hash]
|
532
|
-
# A policy that specifies how
|
530
|
+
# A policy that specifies how Pub/Sub retries message delivery for this
|
533
531
|
# subscription.
|
534
532
|
#
|
535
533
|
# If not set, the default retry policy is applied. This generally implies
|
536
534
|
# that messages will be retried as soon as possible for healthy subscribers.
|
537
535
|
# RetryPolicy will be triggered on NACKs or acknowledgement deadline
|
538
536
|
# exceeded events for a given message.
|
539
|
-
# <b>EXPERIMENTAL:</b> This API might be changed in backward-incompatible
|
540
|
-
# ways and is not recommended for production use. It is not subject to any
|
541
|
-
# SLA or deprecation policy.
|
542
537
|
# A hash of the same form as `Google::Cloud::PubSub::V1::RetryPolicy`
|
543
538
|
# can also be provided.
|
539
|
+
# @param detached [true, false]
|
540
|
+
# Indicates whether the subscription is detached from its topic. Detached
|
541
|
+
# subscriptions don't receive messages from their topic and don't retain any
|
542
|
+
# backlog. `Pull` and `StreamingPull` requests will return
|
543
|
+
# FAILED_PRECONDITION. If the subscription is a push subscription, pushes to
|
544
|
+
# the endpoint will not be made.
|
544
545
|
# @param options [Google::Gax::CallOptions]
|
545
546
|
# Overrides the default settings for this call, e.g, timeout,
|
546
547
|
# retries, etc.
|
@@ -570,6 +571,7 @@ module Google
|
|
570
571
|
filter: nil,
|
571
572
|
dead_letter_policy: nil,
|
572
573
|
retry_policy: nil,
|
574
|
+
detached: nil,
|
573
575
|
options: nil,
|
574
576
|
&block
|
575
577
|
req = {
|
@@ -584,7 +586,8 @@ module Google
|
|
584
586
|
expiration_policy: expiration_policy,
|
585
587
|
filter: filter,
|
586
588
|
dead_letter_policy: dead_letter_policy,
|
587
|
-
retry_policy: retry_policy
|
589
|
+
retry_policy: retry_policy,
|
590
|
+
detached: detached
|
588
591
|
}.delete_if { |_, v| v.nil? }
|
589
592
|
req = Google::Gax::to_proto(req, Google::Cloud::PubSub::V1::Subscription)
|
590
593
|
@create_subscription.call(req, options, &block)
|
@@ -91,6 +91,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
91
91
|
optional :filter, :string, 12
|
92
92
|
optional :dead_letter_policy, :message, 13, "google.pubsub.v1.DeadLetterPolicy"
|
93
93
|
optional :retry_policy, :message, 14, "google.pubsub.v1.RetryPolicy"
|
94
|
+
optional :detached, :bool, 15
|
94
95
|
end
|
95
96
|
add_message "google.pubsub.v1.RetryPolicy" do
|
96
97
|
optional :minimum_backoff, :message, 1, "google.protobuf.Duration"
|
@@ -166,6 +167,8 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
|
|
166
167
|
repeated :modify_deadline_ack_ids, :string, 4
|
167
168
|
optional :stream_ack_deadline_seconds, :int32, 5
|
168
169
|
optional :client_id, :string, 6
|
170
|
+
optional :max_outstanding_messages, :int64, 7
|
171
|
+
optional :max_outstanding_bytes, :int64, 8
|
169
172
|
end
|
170
173
|
add_message "google.pubsub.v1.StreamingPullResponse" do
|
171
174
|
repeated :received_messages, :message, 1, "google.pubsub.v1.ReceivedMessage"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-pubsub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Moore
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-07-21 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: concurrent-ruby
|
@@ -330,7 +330,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
330
330
|
- !ruby/object:Gem::Version
|
331
331
|
version: '0'
|
332
332
|
requirements: []
|
333
|
-
rubygems_version: 3.
|
333
|
+
rubygems_version: 3.1.3
|
334
334
|
signing_key:
|
335
335
|
specification_version: 4
|
336
336
|
summary: API Client library for Google Cloud Pub/Sub
|