inst-jobs 1.0.0 → 2.0.0
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/lib/delayed/core_ext/kernel.rb +9 -0
- data/lib/delayed/message_sending.rb +56 -9
- data/lib/delayed/performable_method.rb +26 -6
- data/lib/delayed/periodic.rb +14 -4
- data/lib/delayed/version.rb +1 -1
- data/lib/delayed/worker/consul_health_check.rb +1 -1
- data/lib/delayed/worker/health_check.rb +34 -19
- data/lib/delayed_job.rb +2 -0
- data/spec/active_record_job_spec.rb +0 -4
- data/spec/delayed/message_sending_spec.rb +101 -0
- data/spec/delayed/periodic_spec.rb +39 -0
- data/spec/delayed/server_spec.rb +0 -4
- data/spec/delayed/work_queue/in_process_spec.rb +0 -4
- data/spec/delayed/work_queue/parent_process/client_spec.rb +0 -4
- data/spec/delayed/work_queue/parent_process/server_spec.rb +0 -1
- data/spec/delayed/work_queue/parent_process_spec.rb +0 -1
- data/spec/delayed/worker/consul_health_check_spec.rb +1 -1
- data/spec/delayed/worker/health_check_spec.rb +9 -0
- data/spec/redis_job_spec.rb +0 -4
- data/spec/shared/delayed_method.rb +2 -2
- data/spec/shared/performable_method.rb +6 -0
- data/spec/spec_helper.rb +9 -0
- metadata +27 -18
- data/spec/gemfiles/42.gemfile.lock +0 -192
- data/spec/gemfiles/50.gemfile.lock +0 -197
- data/spec/gemfiles/51.gemfile.lock +0 -198
- data/spec/gemfiles/52.gemfile.lock +0 -206
- data/spec/gemfiles/60.gemfile.lock +0 -222
data/spec/delayed/server_spec.rb
CHANGED
@@ -16,10 +16,6 @@ RSpec.describe Delayed::WorkQueue::ParentProcess::Client do
|
|
16
16
|
Delayed.select_backend(Delayed::Backend::ActiveRecord::Job)
|
17
17
|
end
|
18
18
|
|
19
|
-
after :all do
|
20
|
-
Delayed.send(:remove_const, :Job)
|
21
|
-
end
|
22
|
-
|
23
19
|
it 'marshals the given arguments to the server and returns the response' do
|
24
20
|
expect(addrinfo).to receive(:connect).once.and_return(connection)
|
25
21
|
expect(connection).to receive(:eof?).and_return(false)
|
@@ -17,7 +17,7 @@ RSpec.describe Delayed::Worker::ConsulHealthCheck do
|
|
17
17
|
|
18
18
|
describe '#initialize' do
|
19
19
|
it 'must use the default agent client when the config is mostly empty' do
|
20
|
-
check = Delayed::Worker::ConsulHealthCheck.new(
|
20
|
+
check = Delayed::Worker::ConsulHealthCheck.new(worker_name: 'foobar')
|
21
21
|
expect(check.agent_client).to eq Imperium::Agent.default_client
|
22
22
|
end
|
23
23
|
|
@@ -107,6 +107,15 @@ RSpec.describe Delayed::Worker::HealthCheck do
|
|
107
107
|
@dead_job.reload
|
108
108
|
expect(@dead_job.locked_by).to eq 'prefetch:some_node'
|
109
109
|
end
|
110
|
+
|
111
|
+
it "bails immediately if advisory lock already taken" do
|
112
|
+
allow(Delayed::Worker::HealthCheck).to receive(:attempt_advisory_lock).and_return(false)
|
113
|
+
Delayed::Worker::HealthCheck.reschedule_abandoned_jobs
|
114
|
+
@dead_job.reload
|
115
|
+
expect(@dead_job.run_at.to_i).to eq(initial_run_at.to_i)
|
116
|
+
expect(@dead_job.locked_at).to_not be_nil
|
117
|
+
expect(@dead_job.locked_by).to_not be_nil
|
118
|
+
end
|
110
119
|
end
|
111
120
|
|
112
121
|
describe '#initialize' do
|
data/spec/redis_job_spec.rb
CHANGED
@@ -82,11 +82,11 @@ shared_examples_for 'random ruby objects' do
|
|
82
82
|
obj = klass.new
|
83
83
|
method = double()
|
84
84
|
|
85
|
-
expect(Delayed::PerformableMethod).to receive(:new).with(obj, :test_method, args: [1,2,3], kwargs: {synchronous: true}, on_failure: nil, on_permanent_failure: nil).and_return(method)
|
85
|
+
expect(Delayed::PerformableMethod).to receive(:new).with(obj, :test_method, args: [1,2,3], kwargs: {synchronous: true}, on_failure: nil, on_permanent_failure: nil, sender: obj).and_return(method)
|
86
86
|
expect(Delayed::Job).to receive(:enqueue).with(method, :enqueue_arg_1 => :thing)
|
87
87
|
obj.test_method(1,2,3)
|
88
88
|
|
89
|
-
expect(Delayed::PerformableMethod).to receive(:new).with(obj, :test_method, args: [4], kwargs: {:synchronous=>true}, on_failure: nil, on_permanent_failure: nil).and_return(method)
|
89
|
+
expect(Delayed::PerformableMethod).to receive(:new).with(obj, :test_method, args: [4], kwargs: {:synchronous=>true}, on_failure: nil, on_permanent_failure: nil, sender: obj).and_return(method)
|
90
90
|
expect(Delayed::Job).to receive(:enqueue).with(method, :enqueue_arg_1 => :thing)
|
91
91
|
obj.test_method(4)
|
92
92
|
|
@@ -65,4 +65,10 @@ shared_examples_for 'Delayed::PerformableMethod' do
|
|
65
65
|
p.send(:on_permanent_failure, 'fail_frd')
|
66
66
|
story.text.should == 'fail_frd'
|
67
67
|
end
|
68
|
+
|
69
|
+
it "can still generate a name with no kwargs" do
|
70
|
+
story = Story.create :text => 'wat'
|
71
|
+
p = Delayed::PerformableMethod.new(story, :tell, kwargs: nil)
|
72
|
+
expect(p.full_name).to eq("Story.find(#{story.id}).tell()")
|
73
|
+
end
|
68
74
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -35,6 +35,15 @@ RSpec.configure do |config|
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
+
module NoYamlDump
|
39
|
+
def encode_with(coder)
|
40
|
+
end
|
41
|
+
end
|
42
|
+
# example groups are often the sender, and if we try to serialize them,
|
43
|
+
# the resultant object is then encoded in the sender, and then we serialize
|
44
|
+
# again, and it just keeps getting bigger and bigger and bigger...
|
45
|
+
RSpec::Core::ExampleGroup.include(NoYamlDump)
|
46
|
+
|
38
47
|
ENV['TEST_ENV_NUMBER'] ||= '1'
|
39
48
|
ENV['TEST_DB_HOST'] ||= 'localhost'
|
40
49
|
ENV['TEST_DB_DATABASE'] ||= "inst-jobs-test-#{ENV['TEST_ENV_NUMBER']}"
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inst-jobs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tobias Luetke
|
8
8
|
- Brian Palmer
|
9
|
-
autorequire:
|
9
|
+
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2020-
|
12
|
+
date: 2020-12-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activerecord
|
@@ -115,6 +115,20 @@ dependencies:
|
|
115
115
|
- - "~>"
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '1.3'
|
118
|
+
- !ruby/object:Gem::Dependency
|
119
|
+
name: debug_inspector
|
120
|
+
requirement: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - "~>"
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: 0.0.3
|
125
|
+
type: :runtime
|
126
|
+
prerelease: false
|
127
|
+
version_requirements: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: 0.0.3
|
118
132
|
- !ruby/object:Gem::Dependency
|
119
133
|
name: bump
|
120
134
|
requirement: !ruby/object:Gem::Requirement
|
@@ -311,7 +325,7 @@ dependencies:
|
|
311
325
|
- - "~>"
|
312
326
|
- !ruby/object:Gem::Version
|
313
327
|
version: 1.4.0
|
314
|
-
description:
|
328
|
+
description:
|
315
329
|
email:
|
316
330
|
- brianp@instructure.com
|
317
331
|
executables:
|
@@ -361,6 +375,7 @@ files:
|
|
361
375
|
- lib/delayed/backend/redis/tickle_strand.lua
|
362
376
|
- lib/delayed/batch.rb
|
363
377
|
- lib/delayed/cli.rb
|
378
|
+
- lib/delayed/core_ext/kernel.rb
|
364
379
|
- lib/delayed/daemon.rb
|
365
380
|
- lib/delayed/engine.rb
|
366
381
|
- lib/delayed/job_tracking.rb
|
@@ -396,6 +411,8 @@ files:
|
|
396
411
|
- spec/active_record_job_spec.rb
|
397
412
|
- spec/delayed/cli_spec.rb
|
398
413
|
- spec/delayed/daemon_spec.rb
|
414
|
+
- spec/delayed/message_sending_spec.rb
|
415
|
+
- spec/delayed/periodic_spec.rb
|
399
416
|
- spec/delayed/server_spec.rb
|
400
417
|
- spec/delayed/settings_spec.rb
|
401
418
|
- spec/delayed/work_queue/in_process_spec.rb
|
@@ -406,15 +423,10 @@ files:
|
|
406
423
|
- spec/delayed/worker/health_check_spec.rb
|
407
424
|
- spec/delayed/worker_spec.rb
|
408
425
|
- spec/gemfiles/42.gemfile
|
409
|
-
- spec/gemfiles/42.gemfile.lock
|
410
426
|
- spec/gemfiles/50.gemfile
|
411
|
-
- spec/gemfiles/50.gemfile.lock
|
412
427
|
- spec/gemfiles/51.gemfile
|
413
|
-
- spec/gemfiles/51.gemfile.lock
|
414
428
|
- spec/gemfiles/52.gemfile
|
415
|
-
- spec/gemfiles/52.gemfile.lock
|
416
429
|
- spec/gemfiles/60.gemfile
|
417
|
-
- spec/gemfiles/60.gemfile.lock
|
418
430
|
- spec/migrate/20140924140513_add_story_table.rb
|
419
431
|
- spec/redis_job_spec.rb
|
420
432
|
- spec/sample_jobs.rb
|
@@ -429,7 +441,7 @@ files:
|
|
429
441
|
homepage: https://github.com/instructure/inst-jobs
|
430
442
|
licenses: []
|
431
443
|
metadata: {}
|
432
|
-
post_install_message:
|
444
|
+
post_install_message:
|
433
445
|
rdoc_options: []
|
434
446
|
require_paths:
|
435
447
|
- lib
|
@@ -437,30 +449,25 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
437
449
|
requirements:
|
438
450
|
- - ">="
|
439
451
|
- !ruby/object:Gem::Version
|
440
|
-
version: '2.
|
452
|
+
version: '2.6'
|
441
453
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
442
454
|
requirements:
|
443
455
|
- - ">="
|
444
456
|
- !ruby/object:Gem::Version
|
445
457
|
version: '0'
|
446
458
|
requirements: []
|
447
|
-
rubygems_version: 3.
|
448
|
-
signing_key:
|
459
|
+
rubygems_version: 3.0.3
|
460
|
+
signing_key:
|
449
461
|
specification_version: 4
|
450
462
|
summary: Instructure-maintained fork of delayed_job
|
451
463
|
test_files:
|
452
464
|
- spec/sample_jobs.rb
|
453
465
|
- spec/spec_helper.rb
|
454
466
|
- spec/redis_job_spec.rb
|
455
|
-
- spec/gemfiles/51.gemfile.lock
|
456
|
-
- spec/gemfiles/60.gemfile.lock
|
457
|
-
- spec/gemfiles/42.gemfile.lock
|
458
|
-
- spec/gemfiles/50.gemfile.lock
|
459
467
|
- spec/gemfiles/60.gemfile
|
460
468
|
- spec/gemfiles/42.gemfile
|
461
469
|
- spec/gemfiles/52.gemfile
|
462
470
|
- spec/gemfiles/50.gemfile
|
463
|
-
- spec/gemfiles/52.gemfile.lock
|
464
471
|
- spec/gemfiles/51.gemfile
|
465
472
|
- spec/shared_jobs_specs.rb
|
466
473
|
- spec/shared/performable_method.rb
|
@@ -474,6 +481,8 @@ test_files:
|
|
474
481
|
- spec/delayed/cli_spec.rb
|
475
482
|
- spec/delayed/daemon_spec.rb
|
476
483
|
- spec/delayed/worker_spec.rb
|
484
|
+
- spec/delayed/periodic_spec.rb
|
485
|
+
- spec/delayed/message_sending_spec.rb
|
477
486
|
- spec/delayed/settings_spec.rb
|
478
487
|
- spec/delayed/work_queue/in_process_spec.rb
|
479
488
|
- spec/delayed/work_queue/parent_process_spec.rb
|
@@ -1,192 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: ../..
|
3
|
-
specs:
|
4
|
-
inst-jobs (0.15.12)
|
5
|
-
activerecord (>= 4.2)
|
6
|
-
activesupport (>= 4.2)
|
7
|
-
after_transaction_commit (>= 1.0, < 3)
|
8
|
-
railties (>= 4.2)
|
9
|
-
redis (> 3.0)
|
10
|
-
redis-scripting (~> 1.0.1)
|
11
|
-
rufus-scheduler (~> 3.4, < 3.5)
|
12
|
-
|
13
|
-
GEM
|
14
|
-
remote: https://rubygems.org/
|
15
|
-
specs:
|
16
|
-
actionmailer (4.2.9)
|
17
|
-
actionpack (= 4.2.9)
|
18
|
-
actionview (= 4.2.9)
|
19
|
-
activejob (= 4.2.9)
|
20
|
-
mail (~> 2.5, >= 2.5.4)
|
21
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
22
|
-
actionpack (4.2.9)
|
23
|
-
actionview (= 4.2.9)
|
24
|
-
activesupport (= 4.2.9)
|
25
|
-
rack (~> 1.6)
|
26
|
-
rack-test (~> 0.6.2)
|
27
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
28
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.2)
|
29
|
-
actionview (4.2.9)
|
30
|
-
activesupport (= 4.2.9)
|
31
|
-
builder (~> 3.1)
|
32
|
-
erubis (~> 2.7.0)
|
33
|
-
rails-dom-testing (~> 1.0, >= 1.0.5)
|
34
|
-
rails-html-sanitizer (~> 1.0, >= 1.0.3)
|
35
|
-
activejob (4.2.9)
|
36
|
-
activesupport (= 4.2.9)
|
37
|
-
globalid (>= 0.3.0)
|
38
|
-
activemodel (4.2.9)
|
39
|
-
activesupport (= 4.2.9)
|
40
|
-
builder (~> 3.1)
|
41
|
-
activerecord (4.2.9)
|
42
|
-
activemodel (= 4.2.9)
|
43
|
-
activesupport (= 4.2.9)
|
44
|
-
arel (~> 6.0)
|
45
|
-
activesupport (4.2.9)
|
46
|
-
i18n (~> 0.7)
|
47
|
-
minitest (~> 5.1)
|
48
|
-
thread_safe (~> 0.3, >= 0.3.4)
|
49
|
-
tzinfo (~> 1.1)
|
50
|
-
addressable (2.5.2)
|
51
|
-
public_suffix (>= 2.0.2, < 4.0)
|
52
|
-
after_transaction_commit (1.1.2)
|
53
|
-
activerecord (>= 4.0)
|
54
|
-
arel (6.0.4)
|
55
|
-
backports (3.8.0)
|
56
|
-
builder (3.2.3)
|
57
|
-
bump (0.5.4)
|
58
|
-
byebug (9.0.6)
|
59
|
-
coderay (1.1.1)
|
60
|
-
concurrent-ruby (1.0.5)
|
61
|
-
database_cleaner (1.6.1)
|
62
|
-
diff-lcs (1.3)
|
63
|
-
erubis (2.7.0)
|
64
|
-
et-orbi (1.2.1)
|
65
|
-
tzinfo
|
66
|
-
globalid (0.4.0)
|
67
|
-
activesupport (>= 4.2.0)
|
68
|
-
httpclient (2.8.3)
|
69
|
-
i18n (0.8.6)
|
70
|
-
imperium (0.3.0)
|
71
|
-
addressable (~> 2.5.0)
|
72
|
-
httpclient (~> 2.8)
|
73
|
-
loofah (2.0.3)
|
74
|
-
nokogiri (>= 1.5.9)
|
75
|
-
mail (2.6.6)
|
76
|
-
mime-types (>= 1.16, < 4)
|
77
|
-
method_source (0.8.2)
|
78
|
-
mime-types (3.1)
|
79
|
-
mime-types-data (~> 3.2015)
|
80
|
-
mime-types-data (3.2016.0521)
|
81
|
-
mini_portile2 (2.4.0)
|
82
|
-
minitest (5.10.3)
|
83
|
-
multi_json (1.12.1)
|
84
|
-
nokogiri (1.10.4)
|
85
|
-
mini_portile2 (~> 2.4.0)
|
86
|
-
pg (0.21.0)
|
87
|
-
pry (0.10.4)
|
88
|
-
coderay (~> 1.1.0)
|
89
|
-
method_source (~> 0.8.1)
|
90
|
-
slop (~> 3.4)
|
91
|
-
public_suffix (3.0.2)
|
92
|
-
rack (1.6.8)
|
93
|
-
rack-protection (1.5.3)
|
94
|
-
rack
|
95
|
-
rack-test (0.6.3)
|
96
|
-
rack (>= 1.0)
|
97
|
-
rails (4.2.9)
|
98
|
-
actionmailer (= 4.2.9)
|
99
|
-
actionpack (= 4.2.9)
|
100
|
-
actionview (= 4.2.9)
|
101
|
-
activejob (= 4.2.9)
|
102
|
-
activemodel (= 4.2.9)
|
103
|
-
activerecord (= 4.2.9)
|
104
|
-
activesupport (= 4.2.9)
|
105
|
-
bundler (>= 1.3.0, < 2.0)
|
106
|
-
railties (= 4.2.9)
|
107
|
-
sprockets-rails
|
108
|
-
rails-deprecated_sanitizer (1.0.3)
|
109
|
-
activesupport (>= 4.2.0.alpha)
|
110
|
-
rails-dom-testing (1.0.8)
|
111
|
-
activesupport (>= 4.2.0.beta, < 5.0)
|
112
|
-
nokogiri (~> 1.6)
|
113
|
-
rails-deprecated_sanitizer (>= 1.0.1)
|
114
|
-
rails-html-sanitizer (1.0.3)
|
115
|
-
loofah (~> 2.0)
|
116
|
-
railties (4.2.9)
|
117
|
-
actionpack (= 4.2.9)
|
118
|
-
activesupport (= 4.2.9)
|
119
|
-
rake (>= 0.8.7)
|
120
|
-
thor (>= 0.18.1, < 2.0)
|
121
|
-
rake (12.0.0)
|
122
|
-
redis (4.1.2)
|
123
|
-
redis-scripting (1.0.1)
|
124
|
-
redis (>= 3.0)
|
125
|
-
rspec (3.8.0)
|
126
|
-
rspec-core (~> 3.8.0)
|
127
|
-
rspec-expectations (~> 3.8.0)
|
128
|
-
rspec-mocks (~> 3.8.0)
|
129
|
-
rspec-core (3.8.2)
|
130
|
-
rspec-support (~> 3.8.0)
|
131
|
-
rspec-expectations (3.8.4)
|
132
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
133
|
-
rspec-support (~> 3.8.0)
|
134
|
-
rspec-mocks (3.8.1)
|
135
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
136
|
-
rspec-support (~> 3.8.0)
|
137
|
-
rspec-support (3.8.2)
|
138
|
-
rufus-scheduler (3.4.2)
|
139
|
-
et-orbi (~> 1.0)
|
140
|
-
sinatra (1.4.8)
|
141
|
-
rack (~> 1.5)
|
142
|
-
rack-protection (~> 1.4)
|
143
|
-
tilt (>= 1.3, < 3)
|
144
|
-
sinatra-contrib (1.4.7)
|
145
|
-
backports (>= 2.0)
|
146
|
-
multi_json
|
147
|
-
rack-protection
|
148
|
-
rack-test
|
149
|
-
sinatra (~> 1.4.0)
|
150
|
-
tilt (>= 1.3, < 3)
|
151
|
-
slop (3.6.0)
|
152
|
-
sprockets (3.7.1)
|
153
|
-
concurrent-ruby (~> 1.0)
|
154
|
-
rack (> 1, < 3)
|
155
|
-
sprockets-rails (3.2.0)
|
156
|
-
actionpack (>= 4.0)
|
157
|
-
activesupport (>= 4.0)
|
158
|
-
sprockets (>= 3.0.0)
|
159
|
-
test_after_commit (0.4.1)
|
160
|
-
activerecord (>= 3.2)
|
161
|
-
thor (0.19.4)
|
162
|
-
thread_safe (0.3.6)
|
163
|
-
tilt (2.0.8)
|
164
|
-
timecop (0.7.1)
|
165
|
-
tzinfo (1.2.3)
|
166
|
-
thread_safe (~> 0.1)
|
167
|
-
wwtd (1.3.0)
|
168
|
-
|
169
|
-
PLATFORMS
|
170
|
-
ruby
|
171
|
-
|
172
|
-
DEPENDENCIES
|
173
|
-
after_transaction_commit (< 2)
|
174
|
-
bump
|
175
|
-
byebug
|
176
|
-
database_cleaner (= 1.6.1)
|
177
|
-
imperium (>= 0.2.3)
|
178
|
-
inst-jobs!
|
179
|
-
pg (< 1.0)
|
180
|
-
pry
|
181
|
-
rack-test
|
182
|
-
rails (~> 4.2.5)
|
183
|
-
rake
|
184
|
-
rspec (~> 3.8.0)
|
185
|
-
sinatra
|
186
|
-
sinatra-contrib
|
187
|
-
test_after_commit (= 0.4.1)
|
188
|
-
timecop (= 0.7.1)
|
189
|
-
wwtd (~> 1.3.0)
|
190
|
-
|
191
|
-
BUNDLED WITH
|
192
|
-
1.17.2
|