shoryuken 6.2.1 → 7.0.0.alpha2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.devcontainer/base.Dockerfile +1 -1
- data/.github/workflows/push.yml +36 -0
- data/.github/workflows/specs.yml +40 -30
- data/.github/workflows/verify-action-pins.yml +16 -0
- data/.gitignore +2 -1
- data/.rspec +2 -1
- data/.rubocop.yml +6 -1
- data/.ruby-version +1 -0
- data/Appraisals +8 -27
- data/CHANGELOG.md +213 -139
- data/Gemfile +2 -7
- data/README.md +14 -26
- data/Rakefile +2 -0
- data/bin/cli/base.rb +1 -2
- data/bin/cli/sqs.rb +13 -5
- data/bin/shoryuken +2 -1
- data/docker-compose.yml +22 -0
- data/gemfiles/rails_7_0.gemfile +10 -13
- data/gemfiles/rails_7_1.gemfile +19 -0
- data/gemfiles/rails_7_2.gemfile +19 -0
- data/gemfiles/rails_8_0.gemfile +19 -0
- data/lib/shoryuken/body_parser.rb +3 -1
- data/lib/shoryuken/client.rb +2 -0
- data/lib/shoryuken/default_exception_handler.rb +2 -0
- data/lib/shoryuken/default_worker_registry.rb +11 -11
- data/lib/shoryuken/environment_loader.rb +6 -6
- data/lib/shoryuken/extensions/active_job_adapter.rb +13 -6
- data/lib/shoryuken/extensions/active_job_concurrent_send_adapter.rb +5 -5
- data/lib/shoryuken/extensions/active_job_extensions.rb +2 -0
- data/lib/shoryuken/fetcher.rb +4 -2
- data/lib/shoryuken/helpers/atomic_boolean.rb +44 -0
- data/lib/shoryuken/helpers/atomic_counter.rb +104 -0
- data/lib/shoryuken/helpers/atomic_hash.rb +182 -0
- data/lib/shoryuken/helpers/hash_utils.rb +56 -0
- data/lib/shoryuken/helpers/string_utils.rb +65 -0
- data/lib/shoryuken/inline_message.rb +22 -0
- data/lib/shoryuken/launcher.rb +2 -0
- data/lib/shoryuken/logging.rb +19 -5
- data/lib/shoryuken/manager.rb +15 -5
- data/lib/shoryuken/message.rb +2 -0
- data/lib/shoryuken/middleware/chain.rb +2 -0
- data/lib/shoryuken/middleware/server/active_record.rb +2 -0
- data/lib/shoryuken/middleware/server/auto_delete.rb +2 -0
- data/lib/shoryuken/middleware/server/auto_extend_visibility.rb +10 -10
- data/lib/shoryuken/middleware/server/exponential_backoff_retry.rb +5 -3
- data/lib/shoryuken/middleware/server/timing.rb +2 -0
- data/lib/shoryuken/options.rb +14 -5
- data/lib/shoryuken/polling/base_strategy.rb +126 -0
- data/lib/shoryuken/polling/queue_configuration.rb +103 -0
- data/lib/shoryuken/polling/strict_priority.rb +2 -0
- data/lib/shoryuken/polling/weighted_round_robin.rb +2 -0
- data/lib/shoryuken/processor.rb +5 -2
- data/lib/shoryuken/queue.rb +6 -4
- data/lib/shoryuken/runner.rb +9 -12
- data/lib/shoryuken/util.rb +6 -6
- data/lib/shoryuken/version.rb +3 -1
- data/lib/shoryuken/worker/default_executor.rb +2 -0
- data/lib/shoryuken/worker/inline_executor.rb +9 -2
- data/lib/shoryuken/worker.rb +2 -0
- data/lib/shoryuken/worker_registry.rb +2 -0
- data/lib/shoryuken.rb +11 -34
- data/renovate.json +16 -0
- data/shoryuken.gemspec +7 -4
- data/spec/integration/launcher_spec.rb +3 -4
- data/spec/shared_examples_for_active_job.rb +13 -8
- data/spec/shoryuken/body_parser_spec.rb +2 -4
- data/spec/shoryuken/client_spec.rb +1 -1
- data/spec/shoryuken/default_exception_handler_spec.rb +9 -10
- data/spec/shoryuken/default_worker_registry_spec.rb +1 -2
- data/spec/shoryuken/environment_loader_spec.rb +9 -8
- data/spec/shoryuken/extensions/active_job_adapter_spec.rb +2 -1
- data/spec/shoryuken/extensions/active_job_base_spec.rb +2 -1
- data/spec/shoryuken/extensions/active_job_concurrent_send_adapter_spec.rb +2 -1
- data/spec/shoryuken/extensions/active_job_wrapper_spec.rb +2 -1
- data/spec/shoryuken/fetcher_spec.rb +23 -26
- data/spec/shoryuken/helpers/atomic_boolean_spec.rb +196 -0
- data/spec/shoryuken/helpers/atomic_counter_spec.rb +177 -0
- data/spec/shoryuken/helpers/atomic_hash_spec.rb +307 -0
- data/spec/shoryuken/helpers/hash_utils_spec.rb +145 -0
- data/spec/shoryuken/helpers/string_utils_spec.rb +124 -0
- data/spec/shoryuken/helpers_integration_spec.rb +96 -0
- data/spec/shoryuken/inline_message_spec.rb +196 -0
- data/spec/shoryuken/launcher_spec.rb +1 -2
- data/spec/shoryuken/manager_spec.rb +1 -2
- data/spec/shoryuken/middleware/chain_spec.rb +1 -1
- data/spec/shoryuken/middleware/server/auto_delete_spec.rb +1 -1
- data/spec/shoryuken/middleware/server/auto_extend_visibility_spec.rb +1 -1
- data/spec/shoryuken/middleware/server/exponential_backoff_retry_spec.rb +1 -1
- data/spec/shoryuken/middleware/server/timing_spec.rb +1 -1
- data/spec/shoryuken/options_spec.rb +4 -4
- data/spec/shoryuken/polling/base_strategy_spec.rb +280 -0
- data/spec/shoryuken/polling/queue_configuration_spec.rb +195 -0
- data/spec/shoryuken/polling/strict_priority_spec.rb +1 -1
- data/spec/shoryuken/polling/weighted_round_robin_spec.rb +1 -1
- data/spec/shoryuken/processor_spec.rb +1 -1
- data/spec/shoryuken/queue_spec.rb +2 -3
- data/spec/shoryuken/runner_spec.rb +1 -3
- data/spec/shoryuken/util_spec.rb +1 -1
- data/spec/shoryuken/worker/default_executor_spec.rb +1 -1
- data/spec/shoryuken/worker/inline_executor_spec.rb +57 -1
- data/spec/shoryuken/worker_spec.rb +15 -11
- data/spec/shoryuken_spec.rb +1 -1
- data/spec/spec_helper.rb +19 -4
- metadata +79 -35
- data/.codeclimate.yml +0 -20
- data/.github/FUNDING.yml +0 -12
- data/.github/dependabot.yml +0 -6
- data/.github/workflows/stale.yml +0 -20
- data/.reek.yml +0 -5
- data/gemfiles/aws_sdk_core_2.gemfile +0 -21
- data/gemfiles/rails_4_2.gemfile +0 -20
- data/gemfiles/rails_5_2.gemfile +0 -21
- data/gemfiles/rails_6_0.gemfile +0 -21
- data/gemfiles/rails_6_1.gemfile +0 -21
- data/lib/shoryuken/core_ext.rb +0 -69
- data/lib/shoryuken/polling/base.rb +0 -67
- data/shoryuken.jpg +0 -0
- data/spec/shoryuken/core_ext_spec.rb +0 -40
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 962cd757e952228ae34b93d4fa479c623a2cc60e84aa15bbd40645546bb58a59
|
|
4
|
+
data.tar.gz: 2313131f61b7299be011498977450cd8eb06392fa176d095111a7195a86eb033
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ffc81ebcf932be68803e4745bdd0070c67f65bfd1a638ef455cb4339d3f5dc3803b11ff11de9bb2892f3205ec7cff81ce2f807700fa3f0869a683ffc9255541e
|
|
7
|
+
data.tar.gz: d4881cd3e103f290bbfefa48e4d20d8537e4d4aa32d269567bf18b1a77545fc188cc4fe90876a7053c29c527ff94d614d46713e504f7f0f6d117ee25d0a6e779
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster
|
|
2
|
-
ARG VARIANT=
|
|
2
|
+
ARG VARIANT=3-bullseye
|
|
3
3
|
FROM ruby:${VARIANT}
|
|
4
4
|
|
|
5
5
|
# Copy library scripts to execute
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Push Gem
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- v*
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
push:
|
|
13
|
+
if: github.repository_owner == 'ruby-shoryuken'
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
environment: deployment
|
|
16
|
+
|
|
17
|
+
permissions:
|
|
18
|
+
contents: write
|
|
19
|
+
id-token: write
|
|
20
|
+
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
23
|
+
with:
|
|
24
|
+
fetch-depth: 0
|
|
25
|
+
|
|
26
|
+
- name: Set up Ruby
|
|
27
|
+
uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
28
|
+
with:
|
|
29
|
+
bundler-cache: false
|
|
30
|
+
|
|
31
|
+
- name: Bundle install
|
|
32
|
+
run: |
|
|
33
|
+
bundle install --jobs 4 --retry 3
|
|
34
|
+
|
|
35
|
+
# Release
|
|
36
|
+
- uses: rubygems/release-gem@1c162a739e8b4cb21a676e97b087e8268d8fc40b # v1.1.2
|
data/.github/workflows/specs.yml
CHANGED
|
@@ -1,65 +1,75 @@
|
|
|
1
1
|
name: Specs
|
|
2
|
-
|
|
3
2
|
on:
|
|
4
3
|
- push
|
|
5
4
|
- pull_request
|
|
6
|
-
|
|
7
5
|
jobs:
|
|
8
6
|
all_specs:
|
|
9
7
|
name: All Specs
|
|
10
8
|
strategy:
|
|
11
9
|
matrix:
|
|
12
|
-
ruby: ['
|
|
13
|
-
gemfile: ['Gemfile'
|
|
14
|
-
runs-on: ubuntu-
|
|
15
|
-
services:
|
|
16
|
-
moto_sqs:
|
|
17
|
-
image: quay.io/cjlarose/moto-sqs-server:1.1.0
|
|
18
|
-
ports:
|
|
19
|
-
- 5000:5000
|
|
20
|
-
env:
|
|
21
|
-
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
|
10
|
+
ruby: ['3.1', '3.2', '3.3', '3.4']
|
|
11
|
+
gemfile: ['Gemfile']
|
|
12
|
+
runs-on: ubuntu-latest
|
|
22
13
|
steps:
|
|
23
14
|
- name: Checkout code
|
|
24
|
-
uses: actions/checkout@
|
|
25
|
-
|
|
15
|
+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
16
|
+
|
|
17
|
+
- name: Start LocalStack
|
|
18
|
+
run: docker compose up -d
|
|
19
|
+
|
|
20
|
+
- name: Wait for LocalStack
|
|
21
|
+
run: |
|
|
22
|
+
timeout 30s bash -c '
|
|
23
|
+
until curl -s http://localhost:4566/_localstack/health | grep -q "\"sqs\": \"available\""; do
|
|
24
|
+
echo "Waiting for LocalStack..."
|
|
25
|
+
sleep 2
|
|
26
|
+
done
|
|
27
|
+
'
|
|
28
|
+
|
|
29
|
+
- uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
26
30
|
with:
|
|
27
31
|
ruby-version: ${{ matrix.ruby }}
|
|
28
32
|
bundler-cache: true
|
|
33
|
+
|
|
29
34
|
- name: Run specs
|
|
30
35
|
run: bundle exec rake spec
|
|
36
|
+
env:
|
|
37
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
|
38
|
+
|
|
31
39
|
- name: Run integration specs
|
|
32
40
|
run: bundle exec rake spec:integration
|
|
41
|
+
env:
|
|
42
|
+
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
|
43
|
+
|
|
33
44
|
rails_specs:
|
|
34
45
|
name: Rails Specs
|
|
35
46
|
strategy:
|
|
36
47
|
matrix:
|
|
37
|
-
rails: ['
|
|
48
|
+
rails: ['7.0', '7.1', '7.2', '8.0']
|
|
38
49
|
include:
|
|
39
|
-
- rails: '4.2'
|
|
40
|
-
ruby: '2.2'
|
|
41
|
-
gemfile: gemfiles/rails_4_2.gemfile
|
|
42
|
-
- rails: '5.2'
|
|
43
|
-
ruby: '2.5'
|
|
44
|
-
gemfile: gemfiles/rails_5_2.gemfile
|
|
45
|
-
- rails: '6.0'
|
|
46
|
-
ruby: '2.6'
|
|
47
|
-
gemfile: gemfiles/rails_6_0.gemfile
|
|
48
|
-
- rails: '6.1'
|
|
49
|
-
ruby: '3.0'
|
|
50
|
-
gemfile: gemfiles/rails_6_1.gemfile
|
|
51
50
|
- rails: '7.0'
|
|
52
51
|
ruby: '3.1'
|
|
53
52
|
gemfile: gemfiles/rails_7_0.gemfile
|
|
54
|
-
|
|
53
|
+
- rails: '7.1'
|
|
54
|
+
ruby: '3.2'
|
|
55
|
+
gemfile: gemfiles/rails_7_1.gemfile
|
|
56
|
+
- rails: '7.2'
|
|
57
|
+
ruby: '3.3'
|
|
58
|
+
gemfile: gemfiles/rails_7_2.gemfile
|
|
59
|
+
- rails: '8.0'
|
|
60
|
+
ruby: '3.4'
|
|
61
|
+
gemfile: gemfiles/rails_8_0.gemfile
|
|
62
|
+
runs-on: ubuntu-latest
|
|
55
63
|
env:
|
|
56
64
|
BUNDLE_GEMFILE: ${{ matrix.gemfile }}
|
|
57
65
|
steps:
|
|
58
66
|
- name: Checkout code
|
|
59
|
-
uses: actions/checkout@
|
|
60
|
-
|
|
67
|
+
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
68
|
+
|
|
69
|
+
- uses: ruby/setup-ruby@d5126b9b3579e429dd52e51e68624dda2e05be25 # v1.267.0
|
|
61
70
|
with:
|
|
62
71
|
ruby-version: ${{ matrix.ruby }}
|
|
63
72
|
bundler-cache: true
|
|
73
|
+
|
|
64
74
|
- name: Run Rails specs
|
|
65
75
|
run: bundle exec rake spec:rails
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: Verify Action Pins
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
paths:
|
|
5
|
+
- '.github/workflows/**'
|
|
6
|
+
jobs:
|
|
7
|
+
verify:
|
|
8
|
+
runs-on: ubuntu-latest
|
|
9
|
+
steps:
|
|
10
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
11
|
+
- name: Check SHA pins
|
|
12
|
+
run: |
|
|
13
|
+
if grep -E -r "uses: .*/.*@(v[0-9]+|main|master)($|[[:space:]]|$)" --include="*.yml" --include="*.yaml" .github/workflows/ | grep -v "#"; then
|
|
14
|
+
echo "::error::Actions should use SHA pins, not tags or branch names"
|
|
15
|
+
exit 1
|
|
16
|
+
fi
|
data/.gitignore
CHANGED
data/.rspec
CHANGED
|
@@ -1 +1,2 @@
|
|
|
1
|
-
--color
|
|
1
|
+
--color
|
|
2
|
+
--require spec_helper
|
data/.rubocop.yml
CHANGED
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.4.7
|
data/Appraisals
CHANGED
|
@@ -1,42 +1,23 @@
|
|
|
1
|
-
appraise '
|
|
2
|
-
group :test do
|
|
3
|
-
gem 'aws-sdk-core', '~> 2'
|
|
4
|
-
gem 'webrick' # required for Ruby 3
|
|
5
|
-
remove_gem 'aws-sdk-sqs'
|
|
6
|
-
end
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
appraise 'rails_4_2' do
|
|
10
|
-
group :test do
|
|
11
|
-
gem 'activejob', '~> 4.2'
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
group :development do
|
|
15
|
-
gem 'appraisal', '~> 2.2'
|
|
16
|
-
remove_gem 'pry-byebug'
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
appraise 'rails_5_2' do
|
|
1
|
+
appraise 'rails_7_0' do
|
|
21
2
|
group :test do
|
|
22
|
-
gem 'activejob', '~>
|
|
3
|
+
gem 'activejob', '~> 7.0'
|
|
23
4
|
end
|
|
24
5
|
end
|
|
25
6
|
|
|
26
|
-
appraise '
|
|
7
|
+
appraise 'rails_7_1' do
|
|
27
8
|
group :test do
|
|
28
|
-
gem 'activejob', '~>
|
|
9
|
+
gem 'activejob', '~> 7.1'
|
|
29
10
|
end
|
|
30
11
|
end
|
|
31
12
|
|
|
32
|
-
appraise '
|
|
13
|
+
appraise 'rails_7_2' do
|
|
33
14
|
group :test do
|
|
34
|
-
gem 'activejob', '~>
|
|
15
|
+
gem 'activejob', '~> 7.2'
|
|
35
16
|
end
|
|
36
17
|
end
|
|
37
18
|
|
|
38
|
-
appraise '
|
|
19
|
+
appraise 'rails_8_0' do
|
|
39
20
|
group :test do
|
|
40
|
-
gem 'activejob', '~>
|
|
21
|
+
gem 'activejob', '~> 8.0'
|
|
41
22
|
end
|
|
42
23
|
end
|