sqewer 6.5.1 → 7.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -16
- data/CHANGELOG.md +5 -0
- data/README.md +2 -2
- data/bin/console +8 -0
- data/lib/sqewer.rb +19 -0
- data/lib/sqewer/connection.rb +5 -0
- data/lib/sqewer/version.rb +1 -1
- data/sqewer.gemspec +1 -0
- metadata +9 -8
- data/gemfiles/Gemfile.rails-4.2.x +0 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: acb88799499e49e2390422fd05b7c7a160bfec1f441347947941a8f15f62e3f1
|
4
|
+
data.tar.gz: d009682a2cf36c0a27daf683b6110a1a0ce6b3f1b35ba111ad391d57281aa4d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 262f94efde1b86cbce03be08ce9a9c4cdd11de0bb95354c1f7a0adc29bdd4dc08c5d3d82d3377c5d9825dde7bbe1a7323214ed6d89c82d4ed97a56ffd27e0f98
|
7
|
+
data.tar.gz: 5375e768f53ad132fd5a6460dbe5bbf6b1457eaa514c54a1d445fb0f9b7ac30a4c852157877894766ae69da82c2e4efb76c42c4a0689f759ee9b83d909869752
|
data/.travis.yml
CHANGED
@@ -1,11 +1,7 @@
|
|
1
1
|
gemfile:
|
2
|
-
- gemfiles/Gemfile.rails-4.2.x
|
3
2
|
- gemfiles/Gemfile.rails-5.0.x
|
4
3
|
- gemfiles/Gemfile.rails-5.1.x
|
5
4
|
rvm:
|
6
|
-
- 2.3.7
|
7
|
-
- 2.4.5
|
8
|
-
- 2.5.1
|
9
5
|
- 2.6.5
|
10
6
|
- 2.7.0
|
11
7
|
cache: bundler
|
@@ -13,15 +9,3 @@ sudo: false
|
|
13
9
|
env:
|
14
10
|
global:
|
15
11
|
- AWS_REGION=eu-central-1
|
16
|
-
matrix:
|
17
|
-
exclude:
|
18
|
-
- rvm: 2.3.7
|
19
|
-
gemfile: gemfiles/Gemfile.rails-5.0.x
|
20
|
-
- rvm: 2.3.7
|
21
|
-
gemfile: gemfiles/Gemfile.rails-5.1.x
|
22
|
-
- rvm: 2.5.1
|
23
|
-
gemfile: gemfiles/Gemfile.rails-4.2.x
|
24
|
-
- rvm: 2.6.5
|
25
|
-
gemfile: gemfiles/Gemfile.rails-4.2.x
|
26
|
-
- rvm: 2.7.0
|
27
|
-
gemfile: gemfiles/Gemfile.rails-4.2.x
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
### 7.0.0
|
2
|
+
- Remove support of Ruby 2.3, 2.4 and 2.5
|
3
|
+
- Remove support of Rails 4
|
4
|
+
- Change `Sqewer::Connection` to preferentially use a singleton instance of `Aws::SQS::Client`, which can be set using `Sqewer.client=`. This avoids many HTTP requests to the AWS metadata endpoint when getting credentials.
|
5
|
+
|
1
6
|
### 6.5.1
|
2
7
|
- Also retry on `Aws::SQS::Errors::InternalError` exception when receiving/sending messages. This will make
|
3
8
|
the receiving thread more resilient to sudden SQS failures. By the time SQS recovers the receiving thread
|
data/README.md
CHANGED
@@ -48,7 +48,7 @@ The messages will only be deleted from SQS once the job execution completes with
|
|
48
48
|
|
49
49
|
## Requirements
|
50
50
|
|
51
|
-
Ruby 2.
|
51
|
+
Ruby 2.6+, version 2 of the AWS SDK. You can also run Sqewer backed by a SQLite database file, which can be handy for development situations.
|
52
52
|
|
53
53
|
## Job storage
|
54
54
|
|
@@ -288,7 +288,7 @@ and traceable (make good use of logging).
|
|
288
288
|
|
289
289
|
# Usage with Rails via ActiveJob
|
290
290
|
|
291
|
-
This gem includes a queue adapter for usage with ActiveJob in Rails
|
291
|
+
This gem includes a queue adapter for usage with ActiveJob in Rails 5+. The functionality
|
292
292
|
is well-tested and should function for any well-conforming ActiveJob subclasses.
|
293
293
|
|
294
294
|
To run the default `sqewer` worker setup against your Rails application, first set it as the
|
data/bin/console
ADDED
data/lib/sqewer.rb
CHANGED
@@ -11,6 +11,25 @@ module Sqewer
|
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
|
+
# Sets an instance of Aws::SQS::Client to be used as a singleton.
|
15
|
+
# We recommend setting the options instance_profile_credentials_timeout and
|
16
|
+
# instance_profile_credentials_retries, for example:
|
17
|
+
#
|
18
|
+
# sqs_client = Aws::SQS::Client.new(
|
19
|
+
# instance_profile_credentials_timeout: 1,
|
20
|
+
# instance_profile_credentials_retries: 5,
|
21
|
+
# )
|
22
|
+
# Storm.client = sqs_client
|
23
|
+
#
|
24
|
+
# @param client[Aws::SQS::Client] an instance of Aws::SQS::Client
|
25
|
+
def self.client=(client)
|
26
|
+
@client = client
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.client
|
30
|
+
@client
|
31
|
+
end
|
32
|
+
|
14
33
|
# Loads a particular Sqewer extension that is not loaded
|
15
34
|
# automatically during the gem require.
|
16
35
|
#
|
data/lib/sqewer/connection.rb
CHANGED
@@ -211,6 +211,11 @@ class Sqewer::Connection
|
|
211
211
|
end
|
212
212
|
|
213
213
|
def client
|
214
|
+
# It's better using a singleton client to prevent making a lot of HTTP
|
215
|
+
# requests to the AWS metadata endpoint when getting credentials.
|
216
|
+
# Maybe in the future, we can remove @client and use Storm.client only.
|
217
|
+
return Sqewer.client if Sqewer.client
|
218
|
+
|
214
219
|
@client ||= Aws::SQS::Client.new(
|
215
220
|
instance_profile_credentials_timeout: 1, # defaults to 1 second
|
216
221
|
instance_profile_credentials_retries: 5, # defaults to 0 retries
|
data/lib/sqewer/version.rb
CHANGED
data/sqewer.gemspec
CHANGED
@@ -12,6 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.summary = %q{Process jobs from SQS}
|
13
13
|
spec.description = %q{A full-featured library for all them SQS worker needs}
|
14
14
|
spec.homepage = "https://github.com/WeTransfer/sqewer"
|
15
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.6.0")
|
15
16
|
|
16
17
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the "allowed_push_host"
|
17
18
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sqewer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 7.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julik Tarkhanov
|
8
8
|
- Andrei Horak
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-
|
12
|
+
date: 2021-04-08 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: aws-sdk-sqs
|
@@ -226,6 +226,7 @@ email:
|
|
226
226
|
- me@julik.nl
|
227
227
|
- linkyndy@gmail.com
|
228
228
|
executables:
|
229
|
+
- console
|
229
230
|
- sqewer
|
230
231
|
- sqewer_rails
|
231
232
|
extensions: []
|
@@ -239,10 +240,10 @@ files:
|
|
239
240
|
- Gemfile
|
240
241
|
- README.md
|
241
242
|
- Rakefile
|
243
|
+
- bin/console
|
242
244
|
- bin/sqewer
|
243
245
|
- bin/sqewer_rails
|
244
246
|
- example.env
|
245
|
-
- gemfiles/Gemfile.rails-4.2.x
|
246
247
|
- gemfiles/Gemfile.rails-5.0.x
|
247
248
|
- gemfiles/Gemfile.rails-5.1.x
|
248
249
|
- lib/sqewer.rb
|
@@ -270,7 +271,7 @@ homepage: https://github.com/WeTransfer/sqewer
|
|
270
271
|
licenses: []
|
271
272
|
metadata:
|
272
273
|
allowed_push_host: https://rubygems.org
|
273
|
-
post_install_message:
|
274
|
+
post_install_message:
|
274
275
|
rdoc_options: []
|
275
276
|
require_paths:
|
276
277
|
- lib
|
@@ -278,15 +279,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
278
279
|
requirements:
|
279
280
|
- - ">="
|
280
281
|
- !ruby/object:Gem::Version
|
281
|
-
version:
|
282
|
+
version: 2.6.0
|
282
283
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
283
284
|
requirements:
|
284
285
|
- - ">="
|
285
286
|
- !ruby/object:Gem::Version
|
286
287
|
version: '0'
|
287
288
|
requirements: []
|
288
|
-
rubygems_version: 3.0.
|
289
|
-
signing_key:
|
289
|
+
rubygems_version: 3.0.3
|
290
|
+
signing_key:
|
290
291
|
specification_version: 4
|
291
292
|
summary: Process jobs from SQS
|
292
293
|
test_files: []
|