delayed_job_master 2.0.0 → 2.0.3
Sign up to get free protection for your applications and to get access to all the features.
- 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
|