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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90f6ec1ebe00243f5d69adf6a92a6e2716772b7a9af68b7301220bae2cfc55d7
4
- data.tar.gz: 30db6bc4a8183622514a9e4fcad3f5130e3061cff0bb973b834e5e0c9db5ffb0
3
+ metadata.gz: 2352f0e35b9bf06ef9362e797ea35d8b848583d03d8aea62235497dc8b938cc9
4
+ data.tar.gz: 205e1a4b04a8ad361ff0122acc65bcaa02439eaf5bbe91a258652dfa02d79eb9
5
5
  SHA512:
6
- metadata.gz: 6958a025ee232142b6a3049b25ea62075a08dea1446ddc0b29ee3f26d5ef1dd9351e6df46a2ad2a8d8068238e44a84bce6140639ff62aa8a0c8f2ad0ba43c2fe
7
- data.tar.gz: c863131bde412c128fc3f144fd5ba1bb472cd8850a0c31a32d0500e043572e389ce7184c6a98a0b57de31bd5c434601c5641c64ea00b7a7db1a41bd11095f4dc
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.
@@ -2,5 +2,6 @@ source 'https://rubygems.org'
2
2
 
3
3
  gem "delayed_job_active_record", "~> 4.1.0"
4
4
  gem "rails", "~> 6.0.0"
5
+ gem "psych", "~> 3.3.0"
5
6
 
6
7
  gemspec path: "../"
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "rails", "~> 6.1.0"
4
+
5
+ gemspec path: "../"
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem "rails", "~> 7.0.1"
4
+
5
+ gemspec path: "../"
@@ -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
- if worker.database && ActiveRecord::Base.connection_pool.spec.name != worker.database.to_s
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
- load_spec_names.select { |spec_name| has_delayed_job_table?(spec_name) }
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
 
@@ -6,7 +6,7 @@ module Delayed
6
6
  def reopen
7
7
  ObjectSpace.each_object(File) do |file|
8
8
  next if file.closed? || !file.sync
9
- file.reopen file.path
9
+ file.reopen file.path, 'a+'
10
10
  file.sync = true
11
11
  file.flush
12
12
  end
@@ -1,5 +1,5 @@
1
1
  module Delayed
2
2
  class Master
3
- VERSION = "2.0.0"
3
+ VERSION = "2.0.3"
4
4
  end
5
5
  end
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.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: 2019-10-08 00:00:00.000000000 Z
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.0.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