google-cloud-pubsub 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.yardopts +18 -0
- data/AUTHENTICATION.md +177 -0
- data/CHANGELOG.md +538 -0
- data/CODE_OF_CONDUCT.md +40 -0
- data/CONTRIBUTING.md +188 -0
- data/EMULATOR.md +37 -0
- data/LICENSE +201 -0
- data/LOGGING.md +32 -0
- data/OVERVIEW.md +557 -0
- data/TROUBLESHOOTING.md +31 -0
- data/lib/google-cloud-pubsub.rb +139 -0
- data/lib/google/cloud/pubsub.rb +173 -0
- data/lib/google/cloud/pubsub/async_publisher.rb +399 -0
- data/lib/google/cloud/pubsub/async_publisher/batch.rb +309 -0
- data/lib/google/cloud/pubsub/batch_publisher.rb +99 -0
- data/lib/google/cloud/pubsub/convert.rb +91 -0
- data/lib/google/cloud/pubsub/credentials.rb +47 -0
- data/lib/google/cloud/pubsub/errors.rb +85 -0
- data/lib/google/cloud/pubsub/message.rb +158 -0
- data/lib/google/cloud/pubsub/policy.rb +187 -0
- data/lib/google/cloud/pubsub/project.rb +393 -0
- data/lib/google/cloud/pubsub/publish_result.rb +103 -0
- data/lib/google/cloud/pubsub/received_message.rb +297 -0
- data/lib/google/cloud/pubsub/retry_policy.rb +90 -0
- data/lib/google/cloud/pubsub/service.rb +514 -0
- data/lib/google/cloud/pubsub/snapshot.rb +202 -0
- data/lib/google/cloud/pubsub/snapshot/list.rb +178 -0
- data/lib/google/cloud/pubsub/subscriber.rb +399 -0
- data/lib/google/cloud/pubsub/subscriber/enumerator_queue.rb +54 -0
- data/lib/google/cloud/pubsub/subscriber/inventory.rb +166 -0
- data/lib/google/cloud/pubsub/subscriber/sequencer.rb +115 -0
- data/lib/google/cloud/pubsub/subscriber/stream.rb +401 -0
- data/lib/google/cloud/pubsub/subscriber/timed_unary_buffer.rb +231 -0
- data/lib/google/cloud/pubsub/subscription.rb +1279 -0
- data/lib/google/cloud/pubsub/subscription/list.rb +205 -0
- data/lib/google/cloud/pubsub/subscription/push_config.rb +244 -0
- data/lib/google/cloud/pubsub/topic.rb +934 -0
- data/lib/google/cloud/pubsub/topic/list.rb +171 -0
- data/lib/google/cloud/pubsub/v1.rb +17 -0
- data/lib/google/cloud/pubsub/v1/credentials.rb +41 -0
- data/lib/google/cloud/pubsub/v1/doc/google/iam/v1/iam_policy.rb +21 -0
- data/lib/google/cloud/pubsub/v1/doc/google/iam/v1/options.rb +21 -0
- data/lib/google/cloud/pubsub/v1/doc/google/iam/v1/policy.rb +21 -0
- data/lib/google/cloud/pubsub/v1/doc/google/protobuf/duration.rb +91 -0
- data/lib/google/cloud/pubsub/v1/doc/google/protobuf/empty.rb +29 -0
- data/lib/google/cloud/pubsub/v1/doc/google/protobuf/field_mask.rb +222 -0
- data/lib/google/cloud/pubsub/v1/doc/google/protobuf/timestamp.rb +113 -0
- data/lib/google/cloud/pubsub/v1/doc/google/pubsub/v1/pubsub.rb +833 -0
- data/lib/google/cloud/pubsub/v1/doc/google/type/expr.rb +19 -0
- data/lib/google/cloud/pubsub/v1/publisher_client.rb +928 -0
- data/lib/google/cloud/pubsub/v1/publisher_client_config.json +120 -0
- data/lib/google/cloud/pubsub/v1/subscriber_client.rb +1466 -0
- data/lib/google/cloud/pubsub/v1/subscriber_client_config.json +153 -0
- data/lib/google/cloud/pubsub/version.rb +24 -0
- data/lib/google/pubsub/v1/pubsub_pb.rb +269 -0
- data/lib/google/pubsub/v1/pubsub_services_pb.rb +215 -0
- metadata +337 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dfbd62e0e48c406ed08325e5a216f03a0afc4f8319c5ef144fbb6b1fa189e16c
|
4
|
+
data.tar.gz: 31995baf9d81c17e1c867efb5584da5d0be27e1baa3bfa256311e803d43cbfb9
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 8d50149459ec7bc696a15785ae7f0d77777d9f95edefb4da0775f9e005c25cd8cfe17d20899649fb17c6fc928eb9e0bbc0baddce26afc773d300c54728b04bd6
|
7
|
+
data.tar.gz: b599664094c01fc88030478e9076ad72a73ceb6bb3aa4b3a64240193694f0d47f6a34bbbd2ab8ce1188c45d6bbd6322d91e91f157362de0a8a6307c002e6084a
|
data/.yardopts
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
--no-private
|
2
|
+
--title=Google Cloud Pub/Sub
|
3
|
+
--exclude _pb\.rb$
|
4
|
+
--markup markdown
|
5
|
+
--markup-provider redcarpet
|
6
|
+
--main OVERVIEW.md
|
7
|
+
|
8
|
+
./lib/**/*.rb
|
9
|
+
-
|
10
|
+
OVERVIEW.md
|
11
|
+
AUTHENTICATION.md
|
12
|
+
EMULATOR.md
|
13
|
+
LOGGING.md
|
14
|
+
CONTRIBUTING.md
|
15
|
+
TROUBLESHOOTING.md
|
16
|
+
CHANGELOG.md
|
17
|
+
CODE_OF_CONDUCT.md
|
18
|
+
LICENSE
|
data/AUTHENTICATION.md
ADDED
@@ -0,0 +1,177 @@
|
|
1
|
+
# Authentication
|
2
|
+
|
3
|
+
In general, the google-cloud-pubsub library uses [Service
|
4
|
+
Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
|
5
|
+
credentials to connect to Google Cloud services. When running within [Google
|
6
|
+
Cloud Platform environments](#google-cloud-platform-environments)
|
7
|
+
the credentials will be discovered automatically. When running on other
|
8
|
+
environments, the Service Account credentials can be specified by providing the
|
9
|
+
path to the [JSON
|
10
|
+
keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys) for
|
11
|
+
the account (or the JSON itself) in [environment
|
12
|
+
variables](#environment-variables). Additionally, Cloud SDK credentials can also
|
13
|
+
be discovered automatically, but this is only recommended during development.
|
14
|
+
|
15
|
+
## Quickstart
|
16
|
+
|
17
|
+
1. [Create a service account and credentials](#creating-a-service-account).
|
18
|
+
2. Set the [environment variable](#environment-variables).
|
19
|
+
|
20
|
+
```sh
|
21
|
+
export PUBSUB_CREDENTIALS=/path/to/json`
|
22
|
+
```
|
23
|
+
|
24
|
+
3. Initialize the client.
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
require "google/cloud/pubsub"
|
28
|
+
|
29
|
+
client = Google::Cloud::PubSub.new
|
30
|
+
```
|
31
|
+
|
32
|
+
## Project and Credential Lookup
|
33
|
+
|
34
|
+
The google-cloud-pubsub library aims to make authentication
|
35
|
+
as simple as possible, and provides several mechanisms to configure your system
|
36
|
+
without providing **Project ID** and **Service Account Credentials** directly in
|
37
|
+
code.
|
38
|
+
|
39
|
+
**Project ID** is discovered in the following order:
|
40
|
+
|
41
|
+
1. Specify project ID in method arguments
|
42
|
+
2. Specify project ID in configuration
|
43
|
+
3. Discover project ID in environment variables
|
44
|
+
4. Discover GCE project ID
|
45
|
+
5. Discover project ID in credentials JSON
|
46
|
+
|
47
|
+
**Credentials** are discovered in the following order:
|
48
|
+
|
49
|
+
1. Specify credentials in method arguments
|
50
|
+
2. Specify credentials in configuration
|
51
|
+
3. Discover credentials path in environment variables
|
52
|
+
4. Discover credentials JSON in environment variables
|
53
|
+
5. Discover credentials file in the Cloud SDK's path
|
54
|
+
6. Discover GCE credentials
|
55
|
+
|
56
|
+
### Google Cloud Platform environments
|
57
|
+
|
58
|
+
When running on Google Cloud Platform (GCP), including Google Compute Engine (GCE),
|
59
|
+
Google Kubernetes Engine (GKE), Google App Engine (GAE), Google Cloud Functions
|
60
|
+
(GCF) and Cloud Run, the **Project ID** and **Credentials** and are discovered
|
61
|
+
automatically. Code should be written as if already authenticated.
|
62
|
+
|
63
|
+
### Environment Variables
|
64
|
+
|
65
|
+
The **Project ID** and **Credentials JSON** can be placed in environment
|
66
|
+
variables instead of declaring them directly in code. Each service has its own
|
67
|
+
environment variable, allowing for different service accounts to be used for
|
68
|
+
different services. (See the READMEs for the individual service gems for
|
69
|
+
details.) The path to the **Credentials JSON** file can be stored in the
|
70
|
+
environment variable, or the **Credentials JSON** itself can be stored for
|
71
|
+
environments such as Docker containers where writing files is difficult or not
|
72
|
+
encouraged.
|
73
|
+
|
74
|
+
The environment variables that google-cloud-pubsub checks for project ID are:
|
75
|
+
|
76
|
+
1. `PUBSUB_PROJECT`
|
77
|
+
2. `GOOGLE_CLOUD_PROJECT`
|
78
|
+
|
79
|
+
The environment variables that google-cloud-pubsub checks for credentials are configured on {Google::Cloud::PubSub::V1::Credentials}:
|
80
|
+
|
81
|
+
1. `PUBSUB_CREDENTIALS` - Path to JSON file, or JSON contents
|
82
|
+
2. `PUBSUB_KEYFILE` - Path to JSON file, or JSON contents
|
83
|
+
3. `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
|
84
|
+
4. `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
|
85
|
+
5. `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
|
86
|
+
|
87
|
+
```ruby
|
88
|
+
require "google/cloud/pubsub"
|
89
|
+
|
90
|
+
ENV["PUBSUB_PROJECT"] = "my-project-id"
|
91
|
+
ENV["PUBSUB_CREDENTIALS"] = "path/to/keyfile.json"
|
92
|
+
|
93
|
+
client = Google::Cloud::PubSub.new
|
94
|
+
```
|
95
|
+
|
96
|
+
### Configuration
|
97
|
+
|
98
|
+
The **Project ID** and **Credentials JSON** can be configured instead of placing them in environment variables or providing them as arguments.
|
99
|
+
|
100
|
+
```ruby
|
101
|
+
require "google/cloud/pubsub"
|
102
|
+
|
103
|
+
Google::Cloud::PubSub.configure do |config|
|
104
|
+
config.project_id = "my-project-id"
|
105
|
+
config.credentials = "path/to/keyfile.json"
|
106
|
+
end
|
107
|
+
|
108
|
+
client = Google::Cloud::PubSub.new
|
109
|
+
```
|
110
|
+
|
111
|
+
### Cloud SDK
|
112
|
+
|
113
|
+
This option allows for an easy way to authenticate during development. If
|
114
|
+
credentials are not provided in code or in environment variables, then Cloud SDK
|
115
|
+
credentials are discovered.
|
116
|
+
|
117
|
+
To configure your system for this, simply:
|
118
|
+
|
119
|
+
1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
|
120
|
+
2. Authenticate using OAuth 2.0 `$ gcloud auth login`
|
121
|
+
3. Write code as if already authenticated.
|
122
|
+
|
123
|
+
**NOTE:** This is _not_ recommended for running in production. The Cloud SDK
|
124
|
+
*should* only be used during development.
|
125
|
+
|
126
|
+
[gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
|
127
|
+
[dev-console]: https://console.cloud.google.com/project
|
128
|
+
|
129
|
+
[enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
|
130
|
+
|
131
|
+
[create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
|
132
|
+
[create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
|
133
|
+
[reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
|
134
|
+
|
135
|
+
## Creating a Service Account
|
136
|
+
|
137
|
+
Google Cloud requires a **Project ID** and **Service Account Credentials** to
|
138
|
+
connect to the APIs. You will use the **Project ID** and **JSON key file** to
|
139
|
+
connect to most services with google-cloud-pubsub.
|
140
|
+
|
141
|
+
If you are not running this client within [Google Cloud Platform
|
142
|
+
environments](#google-cloud-platform-environments), you need a Google
|
143
|
+
Developers service account.
|
144
|
+
|
145
|
+
1. Visit the [Google Developers Console][dev-console].
|
146
|
+
1. Create a new project or click on an existing project.
|
147
|
+
1. Activate the slide-out navigation tray and select **API Manager**. From
|
148
|
+
here, you will enable the APIs that your application requires.
|
149
|
+
|
150
|
+
![Enable the APIs that your application requires][enable-apis]
|
151
|
+
|
152
|
+
*Note: You may need to enable billing in order to use these services.*
|
153
|
+
|
154
|
+
1. Select **Credentials** from the side navigation.
|
155
|
+
|
156
|
+
You should see a screen like one of the following.
|
157
|
+
|
158
|
+
![Create a new service account][create-new-service-account]
|
159
|
+
|
160
|
+
![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
|
161
|
+
|
162
|
+
Find the "Add credentials" drop down and select "Service account" to be
|
163
|
+
guided through downloading a new JSON key file.
|
164
|
+
|
165
|
+
If you want to re-use an existing service account, you can easily generate a
|
166
|
+
new key file. Just select the account you wish to re-use, and click "Generate
|
167
|
+
new JSON key":
|
168
|
+
|
169
|
+
![Re-use an existing service account][reuse-service-account]
|
170
|
+
|
171
|
+
The key file you download will be used by this library to authenticate API
|
172
|
+
requests and should be stored in a secure location.
|
173
|
+
|
174
|
+
## Troubleshooting
|
175
|
+
|
176
|
+
If you're having trouble authenticating you can ask for help by following the
|
177
|
+
{file:TROUBLESHOOTING.md Troubleshooting Guide}.
|
data/CHANGELOG.md
ADDED
@@ -0,0 +1,538 @@
|
|
1
|
+
# Release History
|
2
|
+
|
3
|
+
### 1.9.0 / 2020-07-21
|
4
|
+
|
5
|
+
#### Features
|
6
|
+
|
7
|
+
* Add support for server-side flow control
|
8
|
+
|
9
|
+
### 1.8.0 / 2020-06-29
|
10
|
+
|
11
|
+
#### Features
|
12
|
+
|
13
|
+
* Add Subscription#filter
|
14
|
+
|
15
|
+
### 1.7.1 / 2020-05-28
|
16
|
+
|
17
|
+
#### Documentation
|
18
|
+
|
19
|
+
* Fix a few broken links
|
20
|
+
|
21
|
+
### 1.7.0 / 2020-05-21
|
22
|
+
|
23
|
+
#### Features
|
24
|
+
|
25
|
+
* Add Retry Policy support
|
26
|
+
* Add RetryPolicy
|
27
|
+
* Add retry_policy param to Topic#subscribe
|
28
|
+
* Add Subscription#retry_policy
|
29
|
+
* Add Subscription#retry_policy=
|
30
|
+
* Set client-scoped UUID in initial StreamingPullRequest#client_id
|
31
|
+
|
32
|
+
### 1.6.1 / 2020-05-06
|
33
|
+
|
34
|
+
#### Documentation
|
35
|
+
|
36
|
+
* Fix example in Emulator documentation
|
37
|
+
* Remove experimental notice from ReceivedMessage#delivery_attempt
|
38
|
+
* Wrap example URLs in backticks
|
39
|
+
|
40
|
+
### 1.6.0 / 2020-04-06
|
41
|
+
|
42
|
+
#### Features
|
43
|
+
|
44
|
+
* Add list_topic_snapshots and get_snapshot
|
45
|
+
* Add PublisherClient#list_topic_snapshots
|
46
|
+
* Add SubscriberClient#get_snapshot
|
47
|
+
|
48
|
+
#### Documentation
|
49
|
+
|
50
|
+
* Remove a spurious link in the low-level interface documentation.
|
51
|
+
|
52
|
+
### 1.5.0 / 2020-03-25
|
53
|
+
|
54
|
+
#### Features
|
55
|
+
|
56
|
+
* Add max_duration_per_lease_extension to Subscription#listen and Subscriber
|
57
|
+
|
58
|
+
### 1.4.0 / 2020-03-11
|
59
|
+
|
60
|
+
#### Features
|
61
|
+
|
62
|
+
* Rename Subscriber inventory methods and params
|
63
|
+
* Rename Subscriber#inventory_limit to #max_outstanding_messages
|
64
|
+
* Rename Subscriber#bytesize to #max_outstanding_bytes
|
65
|
+
* Rename Subscriber#extension to #max_total_lease_duration
|
66
|
+
* Add deprecated aliases for the original methods
|
67
|
+
* Support separate project setting for quota/billing
|
68
|
+
|
69
|
+
#### Documentation
|
70
|
+
|
71
|
+
* Update documentation in the lower-level client
|
72
|
+
|
73
|
+
### 1.3.1 / 2020-02-18
|
74
|
+
|
75
|
+
#### Bug Fixes
|
76
|
+
|
77
|
+
* Move Thread.new to end of AsyncPublisher#initialize
|
78
|
+
|
79
|
+
### 1.3.0 / 2020-02-10
|
80
|
+
|
81
|
+
#### Features
|
82
|
+
|
83
|
+
* Add support for Dead Letter Topics
|
84
|
+
* Add `dead_letter_topic` and `dead_letter_max_delivery_attempts` to `Topic#subscribe`
|
85
|
+
* Add `Subscription#dead_letter_topic` and `Subscription#dead_letter_topic=`
|
86
|
+
* Add `Subscription#dead_letter_max_delivery_attempts` and `Subscription#dead_letter_max_delivery_attempts=`
|
87
|
+
* Add `ReceivedMessage#delivery_attempt`
|
88
|
+
|
89
|
+
### 1.2.2 / 2020-02-04
|
90
|
+
|
91
|
+
#### Performance Improvements
|
92
|
+
|
93
|
+
* Add StreamingPullRequest#client_id to the lower-level API
|
94
|
+
|
95
|
+
### 1.2.1 / 2020-01-23
|
96
|
+
|
97
|
+
#### Documentation
|
98
|
+
|
99
|
+
* Update copyright year
|
100
|
+
|
101
|
+
### 1.2.0 / 2020-01-09
|
102
|
+
|
103
|
+
#### Features
|
104
|
+
|
105
|
+
* Add Subscriber inventory settings
|
106
|
+
* Add the following settings to Subscriber:
|
107
|
+
* Subscriber#inventory_limit
|
108
|
+
* Subscriber#inventory_bytesize
|
109
|
+
* Subscriber#extension
|
110
|
+
* Allow Subscription#listen inventory argument to be a hash.
|
111
|
+
* Update AsyncPublisher configuration defaults
|
112
|
+
* Update AsyncPublisher defaults to the following:
|
113
|
+
* max_bytes to 1MB, was 10MB.
|
114
|
+
* max_messages to 100, was 1,000.
|
115
|
+
* interval to 10 milliseconds, was 250 milliseconds.
|
116
|
+
* publish thread count to 2, was 4
|
117
|
+
* callback thread count to 4, was 8.
|
118
|
+
|
119
|
+
### 1.1.3 / 2019-12-18
|
120
|
+
|
121
|
+
#### Bug Fixes
|
122
|
+
|
123
|
+
* Fix MonitorMixin usage on Ruby 2.7
|
124
|
+
* Ruby 2.7 will error if new_cond is called before super().
|
125
|
+
* Make the call to super() be the first call in initialize
|
126
|
+
|
127
|
+
### 1.1.2 / 2019-11-19
|
128
|
+
|
129
|
+
#### Performance Improvements
|
130
|
+
|
131
|
+
* Update network configuration
|
132
|
+
|
133
|
+
### 1.1.1 / 2019-11-06
|
134
|
+
|
135
|
+
#### Bug Fixes
|
136
|
+
|
137
|
+
* Update minimum runtime dependencies
|
138
|
+
|
139
|
+
#### Documentation
|
140
|
+
|
141
|
+
* Update the list of GCP environments for automatic authentication
|
142
|
+
|
143
|
+
### 1.1.0 / 2019-10-23
|
144
|
+
|
145
|
+
#### Features
|
146
|
+
|
147
|
+
* Add support for Ordering Keys
|
148
|
+
* Google Cloud Pub/Sub ordering keys provide the ability to ensure related
|
149
|
+
messages are sent to subscribers in the order in which they were published.
|
150
|
+
The service guarantees that, for a given ordering key and publisher, messages
|
151
|
+
are sent to subscribers in the order in which they were published.
|
152
|
+
* Note: At the time of this release, ordering keys are not yet publicly enabled
|
153
|
+
and requires special project enablements.
|
154
|
+
* Add Google::Cloud::PubSub::Topic#enable_message_ordering! method.
|
155
|
+
* Add Google::Cloud::PubSub::Topic#message_ordering? method.
|
156
|
+
* Add ordering_key argument to Google::Cloud::PubSub::Topic#publish_async method.
|
157
|
+
* Add Google::Cloud::PubSub::Topic#resume_publish method.
|
158
|
+
* Add message_ordering argument to Google::Cloud::PubSub::Topic#subscribe method.
|
159
|
+
* Add Google::Cloud::PubSub::Subscription#message_ordering? method.
|
160
|
+
* Update Ruby dependency to minimum of 2.4.
|
161
|
+
|
162
|
+
### 1.0.2 / 2019-10-10
|
163
|
+
|
164
|
+
#### Bug Fixes
|
165
|
+
|
166
|
+
* Fix Subscriber state after releasing messages
|
167
|
+
* Correctly reset the Subscriber state when releasing messages
|
168
|
+
after the callback either raises an error, or the callback
|
169
|
+
fails to call acknowledge or modify_ack_deadline on the
|
170
|
+
message. If a Subscriber fills it's inventory, and stops
|
171
|
+
pulling additional messages before all the callbacks are
|
172
|
+
completed (moves to a paused state) then the Subscriber
|
173
|
+
could become stuck in a paused state.
|
174
|
+
* A paused Subscriber will now check whether to unpause after
|
175
|
+
the callback is completed, instead of when acknowledge or
|
176
|
+
modify_ack_deadline is called on the message.
|
177
|
+
|
178
|
+
### 1.0.1 / 2019-10-01
|
179
|
+
|
180
|
+
#### Bug Fixes
|
181
|
+
|
182
|
+
* Fix Subscriber lease issue
|
183
|
+
* Fix logic for renewing Subscriber lease for messages.
|
184
|
+
* Subscriptions with very low volume would only be renewed once.
|
185
|
+
* Now messages will be renewed as many times as it takes until
|
186
|
+
* Fix Subscriber lease timing
|
187
|
+
* Start the clock for the next lease renewal immediately.
|
188
|
+
* This help Subscriptions with a very short deadline not
|
189
|
+
|
190
|
+
### 1.0.0 / 2019-09-30
|
191
|
+
|
192
|
+
#### Features
|
193
|
+
|
194
|
+
* Allow wait to block for specified time
|
195
|
+
* Add timeout argument to Subscriber#wait! method.
|
196
|
+
* Document timeout argument on AsyncPublisher#wait! method.
|
197
|
+
* Add stop! convenience method, calling both stop and wait
|
198
|
+
* Add Subscriber#stop! method.
|
199
|
+
* Add AsyncPublisher#stop! method.
|
200
|
+
|
201
|
+
### 0.39.3 / 2019-09-27
|
202
|
+
|
203
|
+
#### Bug Fixes
|
204
|
+
|
205
|
+
* Fix Subscriber#wait! behavior
|
206
|
+
* Fix an issue where the Subscriber#wait! would block
|
207
|
+
for only 60 seconds, and not indefinitely.
|
208
|
+
* This was introduced in the previous release, 0.39.2.
|
209
|
+
|
210
|
+
#### Configuration Changes
|
211
|
+
|
212
|
+
* Update Subscriber acknowledge and modify_ack_deadline configuration
|
213
|
+
* The acknowledge and modify_ack_deadline RPCs have a lower size
|
214
|
+
limit than the other RPCs. Requests larger than 524288 bytes will
|
215
|
+
raise invalid argument errors.
|
216
|
+
* Update low-level client network configuration
|
217
|
+
|
218
|
+
### 0.39.2 / 2019-09-17
|
219
|
+
|
220
|
+
#### Bug Fixes
|
221
|
+
|
222
|
+
* Do not interrupt Subscriber callbacks when stopping
|
223
|
+
* Allow in-process callbacks to complete when a Subscriber is stopped.
|
224
|
+
|
225
|
+
#### Documentation
|
226
|
+
|
227
|
+
* Update Subscriber stop and wait documentation
|
228
|
+
* Update Subscriber#stop and Subscriber#wait! method
|
229
|
+
|
230
|
+
### 0.39.1 / 2019-09-04
|
231
|
+
|
232
|
+
#### Features
|
233
|
+
|
234
|
+
* Update Dead Letter Policy
|
235
|
+
* Add ReceivedMessage#delivery_attempt
|
236
|
+
* Experimental
|
237
|
+
|
238
|
+
### 0.39.0 / 2019-08-23
|
239
|
+
|
240
|
+
#### Features
|
241
|
+
|
242
|
+
* Add Dead Letter Policy to low-level API
|
243
|
+
* Add Google::Cloud::PubSub::V1::Subscription#dead_letter_policy
|
244
|
+
* Add Google::Cloud::PubSub::V1::DeadLetterPolicy class
|
245
|
+
|
246
|
+
#### Documentation
|
247
|
+
|
248
|
+
* Update documentation
|
249
|
+
|
250
|
+
### 0.38.1 / 2019-08-02
|
251
|
+
|
252
|
+
* Add endpoint argument to constructor
|
253
|
+
|
254
|
+
### 0.38.0 / 2019-07-31
|
255
|
+
|
256
|
+
* Allow persistence_regions to be set
|
257
|
+
* Support setting persistence_regions on topic creation
|
258
|
+
and topic update.
|
259
|
+
* Allow Service endpoint to be configured
|
260
|
+
* Google::Cloud::PubSub.configure.endpoint
|
261
|
+
* Fix max threads setting in thread pools
|
262
|
+
* Thread pools once again limit the number of threads allocated.
|
263
|
+
* Reduce thread usage at startup
|
264
|
+
* Allocate threads in pool as needed, not all up front
|
265
|
+
* Update documentation links
|
266
|
+
|
267
|
+
### 0.37.1 / 2019-07-09
|
268
|
+
|
269
|
+
* Add IAM GetPolicyOptions in the lower-level interface.
|
270
|
+
* Support overriding service host and port in the low-level interface.
|
271
|
+
* Fixed race in TimedUnaryBuffer.
|
272
|
+
|
273
|
+
### 0.37.0 / 2019-06-17
|
274
|
+
|
275
|
+
* Add Topic#persistence_regions
|
276
|
+
* Subscriber changes
|
277
|
+
* Fix potential inventory bug
|
278
|
+
* Messages are removed after callback
|
279
|
+
* This change prevents the Subscriber inventory from filling up
|
280
|
+
when messages are never acked or nacked in the user callback.
|
281
|
+
This might happen due to an error in the user callback code.
|
282
|
+
Removing a message from the inventory will cause the message to
|
283
|
+
be redelivered and reprocessed.
|
284
|
+
* Update concurrency implementation
|
285
|
+
* Use concurrent-ruby Promises framework.
|
286
|
+
* Update network configuration
|
287
|
+
* Enable grpc.service_config_disable_resolution
|
288
|
+
|
289
|
+
### 0.36.0 / 2019-05-21
|
290
|
+
|
291
|
+
* Add Topic#kms_key
|
292
|
+
* Add the Cloud KMS encryption key that will be used to
|
293
|
+
protect access to messages published on a topic.
|
294
|
+
* Updates to the low-level API:
|
295
|
+
* Add Topic#kms_key_name (experimental)
|
296
|
+
* Snapshots no longer marked beta.
|
297
|
+
* Update IAM documentation.
|
298
|
+
|
299
|
+
### 0.35.0 / 2019-04-25
|
300
|
+
|
301
|
+
* Add Subscription#push_config and Subscription::PushConfig
|
302
|
+
* Add Subscription#expires_in
|
303
|
+
* Add Topic#reload!
|
304
|
+
* Add Subscription#reload!
|
305
|
+
* Update low-level generated files
|
306
|
+
* Add PushConfig#oidc_token
|
307
|
+
* Add ordering_key to PubsubMessage.
|
308
|
+
* Add enable_message_ordering to Subscription.
|
309
|
+
* Extract gRPC header values from request.
|
310
|
+
* Update documentation.
|
311
|
+
|
312
|
+
### 0.34.1 / 2019-02-13
|
313
|
+
|
314
|
+
* Fix bug (typo) in retrieving default on_error proc.
|
315
|
+
* Update network configuration.
|
316
|
+
|
317
|
+
### 0.34.0 / 2019-02-01
|
318
|
+
|
319
|
+
* Switch to use Google::Cloud::PubSub namespace.
|
320
|
+
* Add PubSub on_error configuration.
|
321
|
+
* Major updates to Subscriber
|
322
|
+
* Add dependency on current-ruby.
|
323
|
+
* Updates are now made using unary API calls, not the gRPC stream.
|
324
|
+
* Update Subscriber inventory lease mechanics:
|
325
|
+
* This change will help avoid race conditions by ensuring that
|
326
|
+
inventory lease renewal actions don't override ack/nack/delay
|
327
|
+
actions made on a received message via the Subscriber callback.
|
328
|
+
* Changes to avoid potential race conditions in updates.
|
329
|
+
* Add reference?/resource? helper methods:
|
330
|
+
* Topic#reference?
|
331
|
+
* Topic#resource?
|
332
|
+
* Subscription#reference?
|
333
|
+
* Subscription#resource?
|
334
|
+
* Add documentation for methods that will make an API call
|
335
|
+
when called on a reference object.
|
336
|
+
* Topic#labels
|
337
|
+
* Subscription#topic
|
338
|
+
* Subscription#deadline
|
339
|
+
* Subscription#retain_acked
|
340
|
+
* Subscription#retention
|
341
|
+
* Subscription#endpoint
|
342
|
+
* Subscription#labels
|
343
|
+
* Subscription#exists?
|
344
|
+
* Subscription#listen (without deadline optional argument)
|
345
|
+
* Add example code for avoiding API calls to Overview guide.
|
346
|
+
* Remove the #delay alias for modify_ack_deadline.
|
347
|
+
* Users should use the modify_ack_deadline and modify_ack_deadline!
|
348
|
+
methods directly instead.
|
349
|
+
* Make use of Credentials#project_id
|
350
|
+
* Use Credentials#project_id
|
351
|
+
If a project_id is not provided, use the value on the Credentials object.
|
352
|
+
This value was added in googleauth 0.7.0.
|
353
|
+
* Loosen googleauth dependency
|
354
|
+
Allow for new releases up to 0.10.
|
355
|
+
The googleauth devs have committed to maintaining the current API
|
356
|
+
and will not make backwards compatible changes before 0.10.
|
357
|
+
* Update low level API
|
358
|
+
* Add expiration_policy field
|
359
|
+
* Numerous updates and fixes to the low-level documentation,
|
360
|
+
including fixes for some broken links.i
|
361
|
+
|
362
|
+
### 0.33.2 / 2018-10-29
|
363
|
+
|
364
|
+
* Rename delay methods to modify_ack_deadline
|
365
|
+
* Rename modify_ack_deadling aliases to delay
|
366
|
+
* This maintains backwards compatibility
|
367
|
+
|
368
|
+
### 0.33.1 / 2018-10-03
|
369
|
+
|
370
|
+
* Update connection configuration.
|
371
|
+
* Treat Acknowledge as idempotent.
|
372
|
+
|
373
|
+
### 0.33.0 / 2018-09-20
|
374
|
+
|
375
|
+
* Add support for user labels to Snapshot, Subscription and Topic.
|
376
|
+
* Update documentation.
|
377
|
+
* Change documentation URL to googleapis GitHub org.
|
378
|
+
* Fix circular require warning.
|
379
|
+
|
380
|
+
### 0.32.2 / 2018-09-12
|
381
|
+
|
382
|
+
* Add missing documentation files to package.
|
383
|
+
|
384
|
+
### 0.32.1 / 2018-09-10
|
385
|
+
|
386
|
+
* Fix issue where client_config was not being used on publisher API calls.
|
387
|
+
* Update documentation.
|
388
|
+
|
389
|
+
### 0.32.0 / 2018-08-14
|
390
|
+
|
391
|
+
* Updated Subscriber implementation
|
392
|
+
* Revised shutdown mechanics
|
393
|
+
* Fixes stop and wait! would hanging indefinitely.
|
394
|
+
* Reduce the number of GRPC warnings printed.
|
395
|
+
* Added error callbacks to the API
|
396
|
+
* Use error handler to be notified when unhandled errors
|
397
|
+
occur on a subscriber's stream thread.
|
398
|
+
* Documentation updates.
|
399
|
+
|
400
|
+
### 0.31.1 / 2018-08-14
|
401
|
+
|
402
|
+
* Fix bug in AsyncUnaryPusher,
|
403
|
+
* The modify_ack_deadline requests were malformed.
|
404
|
+
|
405
|
+
### 0.31.0 / 2018-06-12
|
406
|
+
|
407
|
+
* Switch Subscriber to use unary RPC calls for ack/modack.
|
408
|
+
* Reduce number of String objects that are garbage collected.
|
409
|
+
* Documentation updates.
|
410
|
+
|
411
|
+
### 0.30.2 / 2018-04-02
|
412
|
+
|
413
|
+
* Subscriber stability enhancements.
|
414
|
+
* Subscriber performance enhancements.
|
415
|
+
|
416
|
+
### 0.30.1 / 2018-03-08
|
417
|
+
|
418
|
+
* Fix Subscriber thread leak.
|
419
|
+
|
420
|
+
### 0.30.0 / 2018-02-27
|
421
|
+
|
422
|
+
* Support Shared Configuration.
|
423
|
+
* Fix issue with IAM Policy not refreshing properly.
|
424
|
+
|
425
|
+
### 0.29.0 / 2017-12-19
|
426
|
+
|
427
|
+
* Update Subscriber's receipt of received messages.
|
428
|
+
* Refactor Subscriber implementation to fix some threading bugs.
|
429
|
+
* Update google-gax dependency to 1.0.
|
430
|
+
|
431
|
+
### 0.28.1 / 2017-11-21
|
432
|
+
|
433
|
+
* Remove warning when connecting to Pub/Sub Emulator.
|
434
|
+
|
435
|
+
### 0.28.0 / 2017-11-14
|
436
|
+
|
437
|
+
* Add `Google::Cloud::Pubsub::Credentials` class.
|
438
|
+
* Rename constructor arguments to `project_id` and `credentials`.
|
439
|
+
(The previous arguments `project` and `keyfile` are still supported.)
|
440
|
+
* Document `Google::Auth::Credentials` as `credentials` value.
|
441
|
+
* Update generated low level GAPIC code.
|
442
|
+
* Updated `google-gax` (`grpc`, `google-protobuf`), `googleauth` dependencies.
|
443
|
+
|
444
|
+
### 0.27.2 / 2017-10-18
|
445
|
+
|
446
|
+
* Update documentation
|
447
|
+
|
448
|
+
### 0.27.1 / 2017-10-11
|
449
|
+
|
450
|
+
* Add keepalive to gRPC connections.
|
451
|
+
* Update Subscriber Streaming Messages error handling
|
452
|
+
* Fix link in README
|
453
|
+
|
454
|
+
### 0.27.0 / 2017-08-10
|
455
|
+
|
456
|
+
This is a major release that offers new functionality. It adds the ability to asynchronously publish batches of messages when a threshold is met (batch message count, total batch size, batch age). It also adds the ability to receive and acknowledge messages via multiple streams.
|
457
|
+
|
458
|
+
* Publishing Messages Asynchronously
|
459
|
+
* `Topic#publish_async` and `AsyncPublisher` added
|
460
|
+
* `AsyncPublisher` can be stopped
|
461
|
+
* `PublishResult` object is yielded from `Topic#publish_async`
|
462
|
+
* Subscriber Streaming Messages
|
463
|
+
* `Subscription#listen` changed to return a `Subscriber` object
|
464
|
+
* `Subscriber` can open multiple streams to pull messages
|
465
|
+
* `Subscriber` must be started to begin streaming messages
|
466
|
+
* `Subscriber` can be stopped
|
467
|
+
* `Subscriber`'s received messages are leased until acknowledged or rejected
|
468
|
+
* Other Additions
|
469
|
+
* `ReceivedMessage#reject!` method added (aliased as `nack!` and `ignore!`)
|
470
|
+
* `Message#published_at` attribute was added
|
471
|
+
* Removals
|
472
|
+
* `Project#publish` method has been removed
|
473
|
+
* `Project#subscribe` method has been removed
|
474
|
+
* `Project#topic` method argument `autocreate` was removed
|
475
|
+
* `Subscription#pull` method argument `autoack` was removed
|
476
|
+
* `Subscription#wait_for_messages` method argument `autoack` was removed
|
477
|
+
|
478
|
+
### 0.26.0 / 2017-07-11
|
479
|
+
|
480
|
+
* Update GAPIC configuration to exclude `UNAVAILABLE` errors from automatic retry.
|
481
|
+
* Update initialization to raise a better error if project ID is not specified.
|
482
|
+
|
483
|
+
### 0.25.0 / 2017-06-01
|
484
|
+
|
485
|
+
* Add Snapshot and Subscription#seek.
|
486
|
+
* Add Subscription#retain_acked and Subscription#retention.
|
487
|
+
* Update gem spec homepage links.
|
488
|
+
* Remove memoization of Policy.
|
489
|
+
* Remove force parameter from Subscription#policy and Topic#policy.
|
490
|
+
* Remove Policy#deep_dup.
|
491
|
+
* Configure gRPC max_send_message_length and max_receive_message_length
|
492
|
+
to accommodate max message size > 4 MB.
|
493
|
+
|
494
|
+
### 0.24.0 / 2017-03-31
|
495
|
+
|
496
|
+
* Updated documentation
|
497
|
+
* Updated retry configuration for pull requests
|
498
|
+
* Automatic retry on `UNAVAILABLE` errors
|
499
|
+
|
500
|
+
### 0.23.2 / 2017-03-03
|
501
|
+
|
502
|
+
* No public API changes.
|
503
|
+
* Update GRPC header value sent to the Pub/Sub API.
|
504
|
+
|
505
|
+
### 0.23.1 / 2017-03-01
|
506
|
+
|
507
|
+
* No public API changes.
|
508
|
+
* Update GRPC header value sent to the Pub/Sub API.
|
509
|
+
* Low level API adds new Protobuf types and GAPIC methods.
|
510
|
+
|
511
|
+
### 0.23.0 / 2017-02-21
|
512
|
+
|
513
|
+
* Add emulator_host parameter
|
514
|
+
* Fix GRPC retry bug
|
515
|
+
* The client_config data structure has replaced retry_codes/retry_codes_def with retry_codes
|
516
|
+
* Update GRPC/Protobuf/GAX dependencies
|
517
|
+
|
518
|
+
### 0.22.0 / 2017-01-26
|
519
|
+
|
520
|
+
* Change class names in low-level API (GAPIC)
|
521
|
+
* Change method parameters in low-level API (GAPIC)
|
522
|
+
* Add LICENSE to package.
|
523
|
+
|
524
|
+
### 0.21.0 / 2016-10-20
|
525
|
+
|
526
|
+
* New service constructor Google::Cloud::Pubsub.new
|
527
|
+
* New constructor argument client_config
|
528
|
+
|
529
|
+
### 0.20.1 / 2016-09-02
|
530
|
+
|
531
|
+
* Fix an issue with the GRPC client and forked sub-processes
|
532
|
+
|
533
|
+
### 0.20.0 / 2016-08-26
|
534
|
+
|
535
|
+
This gem contains the Google Cloud Pub/Sub service implementation for the `google-cloud` gem. The `google-cloud` gem replaces the old `gcloud` gem. Legacy code can continue to use the `gcloud` gem.
|
536
|
+
|
537
|
+
* Namespace is now `Google::Cloud`
|
538
|
+
* The `google-cloud` gem is now an umbrella package for individual gems
|