resqued 0.8.4 → 0.10.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,9 +1,9 @@
1
- require 'spec_helper'
1
+ require "spec_helper"
2
2
 
3
- require 'fileutils'
4
- require 'tmpdir'
3
+ require "fileutils"
4
+ require "tmpdir"
5
5
 
6
- require 'resqued/config'
6
+ require "resqued/config"
7
7
 
8
8
  describe Resqued::Config do
9
9
  context do
@@ -19,8 +19,8 @@ describe Resqued::Config do
19
19
  end
20
20
  let(:config) { Resqued::Config.new([@config_file]) }
21
21
 
22
- it("can require_relative") { config.build_workers ; expect($test_val).to eq(:ok) }
23
- it("does not override require_relative in required files") { config.build_workers ; expect($other_test_val).to eq(:ok) }
22
+ it("can require_relative") { config.build_workers; expect($test_val).to eq(:ok) }
23
+ it("does not override require_relative in required files") { config.build_workers; expect($other_test_val).to eq(:ok) }
24
24
 
25
25
  def make_file(dir, relative_path, content)
26
26
  File.join(dir, relative_path).tap do |path|
@@ -1,34 +1,33 @@
1
- require 'spec_helper'
2
- require 'resqued/sleepy'
3
- require 'thread'
1
+ require "spec_helper"
2
+ require "resqued/sleepy"
4
3
 
5
4
  describe Resqued::Sleepy do
6
5
  include Resqued::Sleepy
7
6
 
8
- it 'sleeps' do
7
+ it "sleeps" do
9
8
  expect { yawn(0.2) }.to run_for(0.2)
10
9
  end
11
10
 
12
- it 'wakes on `awake`' do
13
- Thread.new { sleep 0.1 ; awake }
11
+ it "wakes on `awake`" do
12
+ Thread.new { sleep 0.1; awake }
14
13
  expect { yawn(2.0) }.to run_for(0.1)
15
14
  end
16
15
 
17
- it 'wakes on IO' do
16
+ it "wakes on IO" do
18
17
  rd, wr = IO.pipe
19
- Thread.new { sleep 0.1 ; wr.write('.') }
18
+ Thread.new { sleep 0.1; wr.write(".") }
20
19
  expect { yawn(2.0, rd) }.to run_for(0.1)
21
20
  end
22
21
 
23
- it 'does not sleep if duration is 0' do
22
+ it "does not sleep if duration is 0" do
24
23
  expect { yawn(-0.000001) }.to run_for(0.0)
25
24
  end
26
25
 
27
- it 'does not sleep if duration is negative' do
26
+ it "does not sleep if duration is negative" do
28
27
  expect { yawn(0) }.to run_for(0.0)
29
28
  end
30
29
 
31
- it 'sleeps if io is nil' do
30
+ it "sleeps if io is nil" do
32
31
  expect { yawn(0.5, nil) }.to run_for(0.5)
33
32
  end
34
33
  end
@@ -1,14 +1,14 @@
1
- require 'spec_helper'
2
- require 'resqued/test_case'
1
+ require "spec_helper"
2
+ require "resqued/test_case"
3
3
 
4
4
  describe Resqued::TestCase do
5
5
  let(:test_case) { Object.new.extend(the_module) }
6
6
 
7
- context 'LoadConfig' do
7
+ context "LoadConfig" do
8
8
  let(:the_module) { described_class::LoadConfig }
9
- it { expect { test_case.assert_resqued 'spec/fixtures/test_case_environment.rb', 'spec/fixtures/test_case_clean.rb' }.not_to raise_error }
10
- it { expect { test_case.assert_resqued 'spec/fixtures/test_case_environment.rb', 'spec/fixtures/test_case_before_fork_raises.rb' }.to raise_error }
11
- it { expect { test_case.assert_resqued 'spec/fixtures/test_case_environment.rb', 'spec/fixtures/test_case_after_fork_raises.rb' }.to raise_error }
12
- it { expect { test_case.assert_resqued 'spec/fixtures/test_case_environment.rb', 'spec/fixtures/test_case_no_workers.rb' }.not_to raise_error }
9
+ it { expect { test_case.assert_resqued "spec/fixtures/test_case_environment.rb", "spec/fixtures/test_case_clean.rb" }.not_to raise_error }
10
+ it { expect { test_case.assert_resqued "spec/fixtures/test_case_environment.rb", "spec/fixtures/test_case_before_fork_raises.rb" }.to raise_error(RuntimeError) }
11
+ it { expect { test_case.assert_resqued "spec/fixtures/test_case_environment.rb", "spec/fixtures/test_case_after_fork_raises.rb" }.to raise_error(RuntimeError) }
12
+ it { expect { test_case.assert_resqued "spec/fixtures/test_case_environment.rb", "spec/fixtures/test_case_no_workers.rb" }.not_to raise_error }
13
13
  end
14
14
  end
@@ -1 +1 @@
1
- require 'support/custom_matchers'
1
+ require "support/custom_matchers"
@@ -8,7 +8,11 @@ module CustomMatchers
8
8
  class RunFor
9
9
  def initialize(expected_duration)
10
10
  @expected_duration = expected_duration
11
- @epsilon = 0.01
11
+ @epsilon = 0.01
12
+ end
13
+
14
+ def supports_block_expectations?
15
+ true
12
16
  end
13
17
 
14
18
  def within(epsilon)
@@ -24,9 +28,13 @@ module CustomMatchers
24
28
  @epsilon >= diff
25
29
  end
26
30
 
27
- def failure_message_for_should
31
+ def failure_message
28
32
  "Expected block to run for #{@expected_duration} +/-#{@epsilon} seconds, but it ran for #{@actual_duration} seconds."
29
33
  end
34
+
35
+ def failure_message_when_negated
36
+ "Expected block not to run for #{@expected_duration} +/-#{@epsilon} seconds, but it ran for #{@actual_duration} seconds."
37
+ end
30
38
  end
31
39
  end
32
40
 
@@ -0,0 +1,84 @@
1
+ #!/bin/bash
2
+
3
+ set -e
4
+ set -o nounset
5
+
6
+ WORKDIR="$(mktemp)"
7
+ PIDFILE="${WORKDIR}/resqued.pid"
8
+ CONFIG="${WORKDIR}/config.rb"
9
+
10
+ # mktemp makes a file, but we want a dir.
11
+ rm -f "$WORKDIR"
12
+ mkdir "$WORKDIR"
13
+
14
+ set -x
15
+ cd "$(dirname "$0")/.."
16
+
17
+ main() {
18
+ trap cleanup EXIT
19
+
20
+ configure_resqued
21
+ start_resqued
22
+ restart_resqued
23
+ stop_resqued
24
+ }
25
+
26
+ configure_resqued() {
27
+ # Don't configure any workers. That way, we don't need to have redis running.
28
+ touch "${CONFIG}"
29
+ }
30
+
31
+ start_resqued() {
32
+ bin_resqued=bin/resqued
33
+ if [ -x gemfiles/bin/resqued ]; then
34
+ bin_resqued=gemfiles/bin/resqued
35
+ fi
36
+ $bin_resqued --pidfile "${PIDFILE}" "${CONFIG}" &
37
+ sleep 1
38
+ echo expect to find the master process and the first listener
39
+ running # set -e will make the test fail if it's not running
40
+ ps axo pid,args -H | grep [r]esqued-
41
+ ps axo pid,args | grep [r]esqued- | grep -q 'listener #1.*running'
42
+ }
43
+
44
+ restart_resqued() {
45
+ local pid="$(cat "${PIDFILE}")"
46
+ kill -HUP "$pid"
47
+ sleep 1
48
+ echo expect to find the master process and the second listener
49
+ running
50
+ ps axo pid,args -H | grep [r]esqued-
51
+ ps axo pid,args | grep [r]esqued- | grep -qv 'listener #1'
52
+ ps axo pid,args | grep [r]esqued- | grep -q 'listener #2.*running'
53
+ }
54
+
55
+ stop_resqued() {
56
+ local pid="$(cat "${PIDFILE}")"
57
+ kill -TERM "$pid"
58
+ sleep 1
59
+ echo expect everything to be stopped
60
+ if running >&/dev/null; then
61
+ echo "expected resqued to be stopped"
62
+ false
63
+ fi
64
+ ps axo pid,args -H | grep [r]esqued- || true
65
+ test -z "$(ps axo pid,args | grep [r]esqued-)"
66
+ }
67
+
68
+ running() {
69
+ set -e
70
+ test -f "${PIDFILE}"
71
+ local pid="$(cat "${PIDFILE}")"
72
+ kill -0 "$pid"
73
+ ps o pid,args "$pid"
74
+ }
75
+
76
+ cleanup() {
77
+ while running >&/dev/null; do
78
+ kill -TERM "$(cat "${PIDFILE}")"
79
+ sleep 2
80
+ done
81
+ rm -rfv "${WORKDIR}" || rm -rf "${WORKDIR}"
82
+ }
83
+
84
+ main
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: resqued
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Burke
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-02-07 00:00:00.000000000 Z
11
+ date: 2020-09-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kgio
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.6'
27
+ - !ruby/object:Gem::Dependency
28
+ name: mono_logger
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '1.0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: resque
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -39,58 +53,51 @@ dependencies:
39
53
  - !ruby/object:Gem::Version
40
54
  version: 1.9.1
41
55
  - !ruby/object:Gem::Dependency
42
- name: mono_logger
56
+ name: rake
43
57
  requirement: !ruby/object:Gem::Requirement
44
58
  requirements:
45
- - - "~>"
59
+ - - '='
46
60
  - !ruby/object:Gem::Version
47
- version: '1.0'
48
- type: :runtime
61
+ version: 13.0.1
62
+ type: :development
49
63
  prerelease: false
50
64
  version_requirements: !ruby/object:Gem::Requirement
51
65
  requirements:
52
- - - "~>"
66
+ - - '='
53
67
  - !ruby/object:Gem::Version
54
- version: '1.0'
68
+ version: 13.0.1
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: rspec
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.0'
62
- - - "<"
73
+ - - '='
63
74
  - !ruby/object:Gem::Version
64
- version: '2.99'
75
+ version: 3.9.0
65
76
  type: :development
66
77
  prerelease: false
67
78
  version_requirements: !ruby/object:Gem::Requirement
68
79
  requirements:
69
- - - "~>"
70
- - !ruby/object:Gem::Version
71
- version: '2.0'
72
- - - "<"
80
+ - - '='
73
81
  - !ruby/object:Gem::Version
74
- version: '2.99'
82
+ version: 3.9.0
75
83
  - !ruby/object:Gem::Dependency
76
- name: rake
84
+ name: rubocop
77
85
  requirement: !ruby/object:Gem::Requirement
78
86
  requirements:
79
- - - "~>"
87
+ - - '='
80
88
  - !ruby/object:Gem::Version
81
- version: 0.9.0
89
+ version: 0.78.0
82
90
  type: :development
83
91
  prerelease: false
84
92
  version_requirements: !ruby/object:Gem::Requirement
85
93
  requirements:
86
- - - "~>"
94
+ - - '='
87
95
  - !ruby/object:Gem::Version
88
- version: 0.9.0
96
+ version: 0.78.0
89
97
  description: Daemon of resque workers
90
98
  email: spraints@gmail.com
91
99
  executables:
92
100
  - resqued
93
- - resqued-listener
94
101
  extensions: []
95
102
  extra_rdoc_files: []
96
103
  files:
@@ -101,7 +108,6 @@ files:
101
108
  - docs/processes.md
102
109
  - docs/signals.md
103
110
  - exe/resqued
104
- - exe/resqued-listener
105
111
  - lib/resqued.rb
106
112
  - lib/resqued/backoff.rb
107
113
  - lib/resqued/config.rb
@@ -111,10 +117,14 @@ files:
111
117
  - lib/resqued/config/dsl.rb
112
118
  - lib/resqued/config/worker.rb
113
119
  - lib/resqued/daemon.rb
120
+ - lib/resqued/exec_on_hup.rb
114
121
  - lib/resqued/listener.rb
122
+ - lib/resqued/listener_pool.rb
115
123
  - lib/resqued/listener_proxy.rb
124
+ - lib/resqued/listener_state.rb
116
125
  - lib/resqued/logging.rb
117
126
  - lib/resqued/master.rb
127
+ - lib/resqued/master_state.rb
118
128
  - lib/resqued/pidfile.rb
119
129
  - lib/resqued/procline_version.rb
120
130
  - lib/resqued/runtime_info.rb
@@ -136,6 +146,7 @@ files:
136
146
  - spec/resqued/test_case_spec.rb
137
147
  - spec/spec_helper.rb
138
148
  - spec/support/custom_matchers.rb
149
+ - spec/test_restart.sh
139
150
  homepage: https://github.com/spraints/resqued
140
151
  licenses:
141
152
  - MIT
@@ -155,23 +166,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
155
166
  - !ruby/object:Gem::Version
156
167
  version: '0'
157
168
  requirements: []
158
- rubyforge_project:
159
- rubygems_version: 2.2.2
169
+ rubygems_version: 3.0.3
160
170
  signing_key:
161
171
  specification_version: 4
162
172
  summary: Daemon of resque workers
163
173
  test_files:
164
- - spec/resqued/sleepy_spec.rb
165
- - spec/resqued/backoff_spec.rb
166
- - spec/resqued/config/worker_spec.rb
167
- - spec/resqued/config/fork_event_spec.rb
168
- - spec/resqued/start_ctx_spec.rb
169
- - spec/resqued/config_spec.rb
170
- - spec/resqued/test_case_spec.rb
171
174
  - spec/spec_helper.rb
175
+ - spec/test_restart.sh
176
+ - spec/support/custom_matchers.rb
177
+ - spec/fixtures/test_case_clean.rb
172
178
  - spec/fixtures/test_case_before_fork_raises.rb
173
179
  - spec/fixtures/test_case_environment.rb
174
180
  - spec/fixtures/test_case_no_workers.rb
175
181
  - spec/fixtures/test_case_after_fork_raises.rb
176
- - spec/fixtures/test_case_clean.rb
177
- - spec/support/custom_matchers.rb
182
+ - spec/resqued/config_spec.rb
183
+ - spec/resqued/config/fork_event_spec.rb
184
+ - spec/resqued/config/worker_spec.rb
185
+ - spec/resqued/sleepy_spec.rb
186
+ - spec/resqued/test_case_spec.rb
187
+ - spec/resqued/start_ctx_spec.rb
188
+ - spec/resqued/backoff_spec.rb
@@ -1,6 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- puts "resqued-listener is deprecated and will be removed."
4
- puts "Stop and start the master process to remove your dependence on resqued-listener."
5
- require 'resqued/listener'
6
- Resqued::Listener.exec!