delayed_job_master 2.0.0 → 2.0.3
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/.github/workflows/ci.yml +61 -0
- data/CHANGELOG.md +14 -0
- data/gemfiles/rails60.gemfile +1 -0
- data/gemfiles/rails61.gemfile +5 -0
- data/gemfiles/rails70.gemfile +5 -0
- data/lib/delayed/master/config.rb +3 -3
- data/lib/delayed/master/database_detector.rb +37 -0
- data/lib/delayed/master/job_checker.rb +3 -18
- data/lib/delayed/master/util/file_reopener.rb +1 -1
- data/lib/delayed/master/version.rb +1 -1
- metadata +7 -4
- data/.travis.yml +0 -23
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2352f0e35b9bf06ef9362e797ea35d8b848583d03d8aea62235497dc8b938cc9
|
4
|
+
data.tar.gz: 205e1a4b04a8ad361ff0122acc65bcaa02439eaf5bbe91a258652dfa02d79eb9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f02b0683502467943f0e1e81543705b7d69febdcf22a846d05525a95fa13844552c6d3215df4f2b87fbfdf859d9178eb18350d746a8f92743752ac0cfa2f44f2
|
7
|
+
data.tar.gz: 104a01e051fce6f6fba061c38e1674a8c3a8bd23d9ae367399a9825fc0a560fc8657dd863d6dca053c734761b93160d70b50c5356343ec12320b572b8937f019
|
@@ -0,0 +1,61 @@
|
|
1
|
+
name: CI
|
2
|
+
|
3
|
+
on: [push, pull_request]
|
4
|
+
|
5
|
+
jobs:
|
6
|
+
test:
|
7
|
+
runs-on: ubuntu-20.04
|
8
|
+
strategy:
|
9
|
+
fail-fast: false
|
10
|
+
matrix:
|
11
|
+
ruby: [2.3, 2.4, 2.5, 2.6, 2.7, '3.0', 3.1]
|
12
|
+
gemfile: ['rails50', 'rails51', 'rails52', 'rails60', 'rails61', 'rails70']
|
13
|
+
exclude:
|
14
|
+
- ruby: 2.3
|
15
|
+
gemfile: rails60
|
16
|
+
- ruby: 2.3
|
17
|
+
gemfile: rails61
|
18
|
+
- ruby: 2.3
|
19
|
+
gemfile: rails70
|
20
|
+
- ruby: 2.4
|
21
|
+
gemfile: rails60
|
22
|
+
- ruby: 2.4
|
23
|
+
gemfile: rails61
|
24
|
+
- ruby: 2.4
|
25
|
+
gemfile: rails70
|
26
|
+
- ruby: 2.5
|
27
|
+
gemfile: rails70
|
28
|
+
- ruby: 2.6
|
29
|
+
gemfile: rails70
|
30
|
+
- ruby: 3.0
|
31
|
+
gemfile: rails50
|
32
|
+
- ruby: 3.0
|
33
|
+
gemfile: rails51
|
34
|
+
- ruby: 3.0
|
35
|
+
gemfile: rails52
|
36
|
+
- ruby: 3.1
|
37
|
+
gemfile: rails50
|
38
|
+
- ruby: 3.1
|
39
|
+
gemfile: rails51
|
40
|
+
- ruby: 3.1
|
41
|
+
gemfile: rails52
|
42
|
+
|
43
|
+
name: ruby ${{ matrix.ruby }}, ${{ matrix.gemfile }}
|
44
|
+
|
45
|
+
env:
|
46
|
+
BUNDLE_GEMFILE: gemfiles/${{ matrix.gemfile }}.gemfile
|
47
|
+
|
48
|
+
steps:
|
49
|
+
- uses: actions/checkout@v2
|
50
|
+
- uses: ruby/setup-ruby@v1
|
51
|
+
with:
|
52
|
+
ruby-version: ${{ matrix.ruby }}
|
53
|
+
bundler-cache: true
|
54
|
+
- name: Prepare test
|
55
|
+
run: |
|
56
|
+
cd spec/dummy
|
57
|
+
BUNDLE_GEMFILE=../../${{ env.BUNDLE_GEMFILE }} RAILS_ENV=test bundle exec rake dbs:migrate
|
58
|
+
cd ../..
|
59
|
+
- name: Run test
|
60
|
+
run: |
|
61
|
+
bundle exec rspec
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,19 @@
|
|
1
1
|
# CHANGELOG
|
2
2
|
|
3
|
+
## 2.0.3
|
4
|
+
|
5
|
+
* Fix database config detection for rails 7.0.
|
6
|
+
|
7
|
+
## 2.0.2
|
8
|
+
|
9
|
+
* Force establish_connection after fork.
|
10
|
+
|
11
|
+
## 2.0.1
|
12
|
+
|
13
|
+
* Force file reopen mode to `a+`.
|
14
|
+
* Set empty array for default `queues` config.
|
15
|
+
* Support to configure worker's option as false. (flavono123, #8)
|
16
|
+
|
3
17
|
## 2.0.0
|
4
18
|
|
5
19
|
* Support multiple databases.
|
data/gemfiles/rails60.gemfile
CHANGED
@@ -21,7 +21,7 @@ module Delayed
|
|
21
21
|
end
|
22
22
|
|
23
23
|
def add_worker
|
24
|
-
worker = WorkerSetting.new(id: @workers.size, count: 1, exit_on_complete: true)
|
24
|
+
worker = WorkerSetting.new(id: @workers.size, queues: [], count: 1, exit_on_complete: true)
|
25
25
|
yield worker
|
26
26
|
@workers << worker
|
27
27
|
end
|
@@ -36,7 +36,7 @@ module Delayed
|
|
36
36
|
|
37
37
|
SIMPLE_CONFIGS.each do |key|
|
38
38
|
define_method(key) do |value = nil|
|
39
|
-
if value
|
39
|
+
if !value.nil?
|
40
40
|
@data[key] = value
|
41
41
|
else
|
42
42
|
@data[key]
|
@@ -72,7 +72,7 @@ module Delayed
|
|
72
72
|
|
73
73
|
SIMPLE_CONFIGS.each do |key|
|
74
74
|
define_method(key) do |value = nil|
|
75
|
-
if value
|
75
|
+
if !value.nil?
|
76
76
|
@data[key] = value
|
77
77
|
else
|
78
78
|
@data[key]
|
@@ -0,0 +1,37 @@
|
|
1
|
+
module Delayed
|
2
|
+
class Master
|
3
|
+
class DatabaseDetector
|
4
|
+
def initialize
|
5
|
+
end
|
6
|
+
|
7
|
+
def call
|
8
|
+
load_spec_names.select { |spec_name| has_delayed_job_table?(spec_name) }
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
|
13
|
+
def load_spec_names
|
14
|
+
if Rails::VERSION::MAJOR >= 6
|
15
|
+
load_spec_names_from_multi_db_config
|
16
|
+
else
|
17
|
+
[Rails.env.to_sym]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def load_spec_names_from_multi_db_config
|
22
|
+
configs = ActiveRecord::Base.configurations.configs_for(env_name: Rails.env)
|
23
|
+
configs.reject!(&:replica?)
|
24
|
+
if Rails::VERSION::MAJOR == 6
|
25
|
+
configs.map { |c| c.spec_name.to_sym }
|
26
|
+
else
|
27
|
+
configs.map { |c| c.name.to_sym }
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def has_delayed_job_table?(spec_name)
|
32
|
+
ActiveRecord::Base.establish_connection(spec_name)
|
33
|
+
ActiveRecord::Base.connection.tables.include?('delayed_jobs')
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require_relative 'job_counter'
|
2
|
+
require_relative 'database_detector'
|
2
3
|
|
3
4
|
module Delayed
|
4
5
|
class Master
|
@@ -52,34 +53,18 @@ module Delayed
|
|
52
53
|
prc = @config.after_fork
|
53
54
|
@config.after_fork do |master, worker|
|
54
55
|
prc.call(master, worker)
|
55
|
-
|
56
|
-
ActiveRecord::Base.establish_connection(worker.database)
|
57
|
-
end
|
56
|
+
ActiveRecord::Base.establish_connection(worker.database) if worker.database
|
58
57
|
end
|
59
58
|
end
|
60
59
|
|
61
60
|
def target_spec_names
|
62
61
|
if @config.databases.nil? || @config.databases.empty?
|
63
|
-
|
62
|
+
DatabaseDetector.new.call
|
64
63
|
else
|
65
64
|
@config.databases
|
66
65
|
end
|
67
66
|
end
|
68
67
|
|
69
|
-
def load_spec_names
|
70
|
-
if Rails::VERSION::MAJOR >= 6
|
71
|
-
configs = ActiveRecord::Base.configurations.configs_for(env_name: Rails.env)
|
72
|
-
configs.reject(&:replica?).map { |c| c.spec_name.to_sym }
|
73
|
-
else
|
74
|
-
[Rails.env.to_sym]
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def has_delayed_job_table?(spec_name)
|
79
|
-
ActiveRecord::Base.establish_connection(spec_name)
|
80
|
-
ActiveRecord::Base.connection.tables.include?('delayed_jobs')
|
81
|
-
end
|
82
|
-
|
83
68
|
def find_jobs_in_db(spec_name)
|
84
69
|
counter = JobCounter.new(model_for(spec_name))
|
85
70
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: delayed_job_master
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yoshikazu Kaneta
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: delayed_job
|
@@ -129,9 +129,9 @@ executables: []
|
|
129
129
|
extensions: []
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
|
+
- ".github/workflows/ci.yml"
|
132
133
|
- ".gitignore"
|
133
134
|
- ".rspec"
|
134
|
-
- ".travis.yml"
|
135
135
|
- CHANGELOG.md
|
136
136
|
- CODE_OF_CONDUCT.md
|
137
137
|
- Gemfile
|
@@ -143,9 +143,12 @@ files:
|
|
143
143
|
- gemfiles/rails51.gemfile
|
144
144
|
- gemfiles/rails52.gemfile
|
145
145
|
- gemfiles/rails60.gemfile
|
146
|
+
- gemfiles/rails61.gemfile
|
147
|
+
- gemfiles/rails70.gemfile
|
146
148
|
- lib/delayed/master.rb
|
147
149
|
- lib/delayed/master/command.rb
|
148
150
|
- lib/delayed/master/config.rb
|
151
|
+
- lib/delayed/master/database_detector.rb
|
149
152
|
- lib/delayed/master/forker.rb
|
150
153
|
- lib/delayed/master/job_checker.rb
|
151
154
|
- lib/delayed/master/job_counter.rb
|
@@ -181,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
181
184
|
- !ruby/object:Gem::Version
|
182
185
|
version: '0'
|
183
186
|
requirements: []
|
184
|
-
rubygems_version: 3.
|
187
|
+
rubygems_version: 3.3.3
|
185
188
|
signing_key:
|
186
189
|
specification_version: 4
|
187
190
|
summary: A simple delayed_job master process to control multiple workers
|
data/.travis.yml
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
language: ruby
|
2
|
-
rvm:
|
3
|
-
- 2.3
|
4
|
-
- 2.4
|
5
|
-
- 2.5
|
6
|
-
- 2.6
|
7
|
-
gemfile:
|
8
|
-
- gemfiles/rails50.gemfile
|
9
|
-
- gemfiles/rails51.gemfile
|
10
|
-
- gemfiles/rails52.gemfile
|
11
|
-
- gemfiles/rails60.gemfile
|
12
|
-
matrix:
|
13
|
-
exclude:
|
14
|
-
- rvm: 2.3
|
15
|
-
gemfile: gemfiles/rails60.gemfile
|
16
|
-
- rvm: 2.4
|
17
|
-
gemfile: gemfiles/rails60.gemfile
|
18
|
-
before_script:
|
19
|
-
- cd spec/dummy
|
20
|
-
- bundle exec rake dbs:migrate RAILS_ENV=test
|
21
|
-
- cd ../..
|
22
|
-
script:
|
23
|
-
- bundle exec rspec
|