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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf1c2d6717fda50ce8a72721d00ffcfd2fae867f40f40a07a0cf48cbe94fe17b
4
- data.tar.gz: fb1622a03a4f540aaa96d24dc3d5d39c5d400b658f371c88dc682844ac784ea5
3
+ metadata.gz: acb88799499e49e2390422fd05b7c7a160bfec1f441347947941a8f15f62e3f1
4
+ data.tar.gz: d009682a2cf36c0a27daf683b6110a1a0ce6b3f1b35ba111ad391d57281aa4d1
5
5
  SHA512:
6
- metadata.gz: fd4e73838959531d646d0ed69fd8316e85075d3abe96b5362c58ff5de9af27b26cec142273bce674aaadf571275f1f91cf055c305be4b9797edd75eb89b74222
7
- data.tar.gz: 9f4b9006f504bd4a0a85abea9d3c82bf2c70ccdfecf59095df58a1e6b1b8b3ed0b6ba819778f828c48e5dd1865c1f312c5feda78485e9ceab95565e9559cc870
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.1+, version 2 of the AWS SDK. You can also run Sqewer backed by a SQLite database file, which can be handy for development situations.
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 4.2+. The functionality
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
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require "bundler/setup"
5
+ require "sqewer"
6
+
7
+ require "irb"
8
+ IRB.start(__FILE__)
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
  #
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Sqewer
2
- VERSION = '6.5.1'
2
+ VERSION = '7.0.0'
3
3
  end
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: 6.5.1
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-02-18 00:00:00.000000000 Z
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: '0'
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.6
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: []
@@ -1,8 +0,0 @@
1
- source "http://rubygems.org"
2
-
3
- # Gemspec as base dependency set
4
- gemspec path: __dir__ + '/..'
5
-
6
- gem 'sqlite3', '~> 1.3.6'
7
- gem 'activejob', "~> 4.2.0"
8
- gem 'activerecord', "~> 4.2.0"