inst-jobs 3.0.9 → 3.0.10

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: 953dc843cf3274fd2fc62ea200636e9663147e6aec0465ca4d258216a3394fc2
4
- data.tar.gz: 46012d5b8466f7178c868564ebb2500f159ff769f879d263247ac4abfa196335
3
+ metadata.gz: 80d0bc1d05ae57467d66361e81fa51a5b45e3fa391250005c59229554757ec08
4
+ data.tar.gz: 32d3df9f6085199fa1e9586330c6ba255f898602eb546ea94f49de52b628e7df
5
5
  SHA512:
6
- metadata.gz: 124abbec91c97e76383eeb503ccc125333cad963120d8e58df674f910860beebbd8f6069b6a83eeb2fdc03b8a475ffe11472be93e584d85195eba0d1226dccae
7
- data.tar.gz: b422a5a470cea805d37b9398b7a380191b50cc387d5f6ce75245b0f677e4e6b73d816f4cf8ae1a2433b4c8533496394d5f275a7aa52d08e3b9e949ef77473871
6
+ metadata.gz: 3befc529f42b4ebcba81aacea9bb4c4401a9daa06708c545572b6d6485db85b3d650b9d12baec0dadad9c7387b30ec5e051493b2992a0f6cd41ced9bcfca2485
7
+ data.tar.gz: 3a3629c08198e0e17455468fd670f4acdd05b28d76b4fbe88516f50692852b6edaf4ed29b6fc26babdfbcca669c9502e88c37616a24cbed5e82611664a3262de
@@ -62,11 +62,21 @@ module Delayed
62
62
  _write_attribute(column, current_time) unless attribute_present?(column)
63
63
  end
64
64
 
65
- attribute_names = attribute_names_for_partial_writes
65
+ attribute_names = if Rails.version < "7.0"
66
+ attribute_names_for_partial_writes
67
+ else
68
+ attribute_names_for_partial_inserts
69
+ end
66
70
  attribute_names = attributes_for_create(attribute_names)
67
71
  values = attributes_with_values(attribute_names)
68
72
 
69
- im = self.class.arel_table.compile_insert(self.class.send(:_substitute_values, values))
73
+ im = if Rails.version < "7.0"
74
+ self.class.arel_table.compile_insert(self.class.send(:_substitute_values, values))
75
+ else
76
+ im = Arel::InsertManager.new(self.class.arel_table)
77
+ im.insert(values.transform_keys { |name| self.class.arel_table[name] })
78
+ im
79
+ end
70
80
 
71
81
  lock_and_insert = values["strand"] && instance_of?(Job)
72
82
  # can't use prepared statements if we're combining multiple statemenets
@@ -101,7 +111,8 @@ module Delayed
101
111
  # but we don't need to lock when inserting into Delayed::Failed
102
112
  if values["strand"] && instance_of?(Job)
103
113
  fn_name = connection.quote_table_name("half_md5_as_bigint")
104
- sql = "SELECT pg_advisory_xact_lock(#{fn_name}(#{connection.quote(values['strand'])})); #{sql}"
114
+ quoted_strand = connection.quote(Rails.version < "7.0" ? values["strand"] : values["strand"].value)
115
+ sql = "SELECT pg_advisory_xact_lock(#{fn_name}(#{quoted_strand})); #{sql}"
105
116
  end
106
117
  result = connection.execute(sql, "#{self.class} Create")
107
118
  self.id = result.values.first&.first
@@ -471,7 +482,7 @@ module Delayed
471
482
  transaction do
472
483
  # for db performance reasons, we only need one process doing this at a time
473
484
  # so if we can't get an advisory lock, just abort. we'll try again soon
474
- return unless attempt_advisory_lock(prefetch_jobs_lock_name)
485
+ next unless attempt_advisory_lock(prefetch_jobs_lock_name)
475
486
 
476
487
  horizon = db_time_now - (Settings.parent_process[:prefetched_jobs_timeout] * 4)
477
488
  where("locked_by LIKE 'prefetch:%' AND locked_at<?", horizon).update_all(locked_at: nil, locked_by: nil)
@@ -36,7 +36,7 @@ module Delayed
36
36
  Delayed::Job.transaction do
37
37
  # for db performance reasons, we only need one process doing this at a time
38
38
  # so if we can't get an advisory lock, just abort. we'll try again soon
39
- return unless Delayed::Job.attempt_advisory_lock("Delayed::Periodic#audit_queue")
39
+ next unless Delayed::Job.attempt_advisory_lock("Delayed::Periodic#audit_queue")
40
40
 
41
41
  perform_audit!
42
42
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Delayed
4
- VERSION = "3.0.9"
4
+ VERSION = "3.0.10"
5
5
  end
@@ -34,7 +34,7 @@ module Delayed
34
34
  # no other worker is trying to do this right now (and if we abandon the
35
35
  # operation, the transaction will end, releasing the advisory lock).
36
36
  result = Delayed::Job.attempt_advisory_lock("Delayed::Worker::HealthCheck#reschedule_abandoned_jobs")
37
- return unless result
37
+ next unless result
38
38
 
39
39
  horizon = 5.minutes.ago
40
40
 
@@ -28,13 +28,13 @@ describe "Delayed::Backed::ActiveRecord::Job" do
28
28
 
29
29
  it "does not allow a second worker to get exclusive access if already successfully processed by worker1" do
30
30
  @job.destroy
31
- expect(@job_copy_for_worker2.send(:lock_exclusively!, "worker2")).to eq(false)
31
+ expect(@job_copy_for_worker2.send(:lock_exclusively!, "worker2")).to be(false)
32
32
  end
33
33
 
34
34
  it "doesn't allow a second worker to get exclusive access if failed to be " \
35
35
  "processed by worker1 and run_at time is now in future (due to backing off behaviour)" do
36
36
  @job.update(attempts: 1, run_at: 1.day.from_now)
37
- expect(@job_copy_for_worker2.send(:lock_exclusively!, "worker2")).to eq(false)
37
+ expect(@job_copy_for_worker2.send(:lock_exclusively!, "worker2")).to be(false)
38
38
  end
39
39
 
40
40
  it "selects the next job at random if enabled" do
@@ -55,13 +55,13 @@ describe "Delayed::Backed::ActiveRecord::Job" do
55
55
 
56
56
  it "unlocks a successfully locked job and persist the job's unlocked state" do
57
57
  job = Delayed::Job.create payload_object: SimpleJob.new
58
- expect(job.send(:lock_exclusively!, "worker1")).to eq(true)
58
+ expect(job.send(:lock_exclusively!, "worker1")).to be(true)
59
59
  job.reload
60
60
  job.unlock
61
61
  job.save!
62
62
  job.reload
63
- expect(job.locked_by).to eq(nil)
64
- expect(job.locked_at).to eq(nil)
63
+ expect(job.locked_by).to be_nil
64
+ expect(job.locked_at).to be_nil
65
65
  end
66
66
 
67
67
  describe "bulk_update failed jobs" do
@@ -85,7 +85,7 @@ describe "Delayed::Backed::ActiveRecord::Job" do
85
85
  before do
86
86
  2.times do
87
87
  j = Delayed::Job.create(payload_object: SimpleJob.new)
88
- expect(j.send(:lock_exclusively!, "worker1")).to eq(true)
88
+ expect(j.send(:lock_exclusively!, "worker1")).to be(true)
89
89
  j.fail!
90
90
  end
91
91
  end
@@ -170,13 +170,13 @@ describe "Delayed::Backed::ActiveRecord::Job" do
170
170
  it "sets one job as next_in_strand at a time with max_concurrent of 1" do
171
171
  job1 = Delayed::Job.enqueue(SimpleJob.new, n_strand: ["njobs"])
172
172
  job1.reload
173
- expect(job1.next_in_strand).to eq(true)
173
+ expect(job1.next_in_strand).to be(true)
174
174
  job2 = Delayed::Job.enqueue(SimpleJob.new, n_strand: ["njobs"])
175
175
  job2.reload
176
- expect(job2.next_in_strand).to eq(false)
176
+ expect(job2.next_in_strand).to be(false)
177
177
  run_job(job1)
178
178
  job2.reload
179
- expect(job2.next_in_strand).to eq(true)
179
+ expect(job2.next_in_strand).to be(true)
180
180
  end
181
181
 
182
182
  it "sets multiple jobs as next_in_strand at a time based on max_concurrent" do
@@ -187,16 +187,16 @@ describe "Delayed::Backed::ActiveRecord::Job" do
187
187
  }) do
188
188
  job1 = Delayed::Job.enqueue(SimpleJob.new, n_strand: ["njobs"])
189
189
  job1.reload
190
- expect(job1.next_in_strand).to eq(true)
190
+ expect(job1.next_in_strand).to be(true)
191
191
  job2 = Delayed::Job.enqueue(SimpleJob.new, n_strand: ["njobs"])
192
192
  job2.reload
193
- expect(job2.next_in_strand).to eq(true)
193
+ expect(job2.next_in_strand).to be(true)
194
194
  job3 = Delayed::Job.enqueue(SimpleJob.new, n_strand: ["njobs"])
195
195
  job3.reload
196
- expect(job3.next_in_strand).to eq(false)
196
+ expect(job3.next_in_strand).to be(false)
197
197
  run_job(job1)
198
198
  job3.reload
199
- expect(job3.next_in_strand).to eq(true)
199
+ expect(job3.next_in_strand).to be(true)
200
200
  end
201
201
  end
202
202
  end
@@ -26,6 +26,6 @@ RSpec.describe Delayed::WorkQueue::InProcess do
26
26
  end
27
27
  job = subject.get_and_lock_next_available(*args)
28
28
  expect(job).to eq(:job)
29
- expect(called).to eq(true)
29
+ expect(called).to be(true)
30
30
  end
31
31
  end
@@ -255,7 +255,7 @@ RSpec.describe Delayed::WorkQueue::ParentProcess::Server do
255
255
  subject.run_once
256
256
 
257
257
  expect(Marshal.load(client)).to eq(job)
258
- expect(called).to eq(true)
258
+ expect(called).to be(true)
259
259
  end
260
260
 
261
261
  it "deletes the correct worker when transferring jobs" do
@@ -13,10 +13,10 @@ shared_examples_for "Delayed::Batch" do
13
13
  batch_jobs = Delayed::Job.find_available(5)
14
14
  regular_jobs = Delayed::Job.list_jobs(:future, 5)
15
15
  expect(regular_jobs.size).to eq(1)
16
- expect(regular_jobs.first.batch?).to eq(false)
16
+ expect(regular_jobs.first.batch?).to be(false)
17
17
  expect(batch_jobs.size).to eq(1)
18
18
  batch_job = batch_jobs.first
19
- expect(batch_job.batch?).to eq(true)
19
+ expect(batch_job.batch?).to be(true)
20
20
  expect(batch_job.payload_object.mode).to eq(:serial)
21
21
  expect(batch_job.payload_object.jobs.map do |j|
22
22
  [j.payload_object.object, j.payload_object.method, j.payload_object.args]
@@ -50,7 +50,7 @@ shared_examples_for "Delayed::Batch" do
50
50
  expect(Delayed::Job.jobs_count(:current)).to eq(1)
51
51
 
52
52
  batch_job = Delayed::Job.find_available(1).first
53
- expect(batch_job.batch?).to eq(true)
53
+ expect(batch_job.batch?).to be(true)
54
54
  jobs = batch_job.payload_object.jobs
55
55
  expect(jobs.size).to eq(2)
56
56
  expect(jobs[0]).to be_new_record
@@ -140,7 +140,7 @@ shared_examples_for "random ruby objects" do
140
140
  obj.test_method(7, synchronous: true)
141
141
  expect(obj.ran).to eq([7])
142
142
  obj.ran = nil
143
- expect(obj.ran).to eq(nil)
143
+ expect(obj.ran).to be_nil
144
144
  obj.test_method(8, 9, synchronous: true)
145
145
  expect(obj.ran).to eq([8, 9])
146
146
  end
@@ -233,7 +233,7 @@ shared_examples_for "a backend" do
233
233
  describe "#transfer_lock" do
234
234
  it "works" do
235
235
  job = create_job(locked_by: "worker", locked_at: Delayed::Job.db_time_now)
236
- expect(job.transfer_lock!(from: "worker", to: "worker2")).to eq true
236
+ expect(job.transfer_lock!(from: "worker", to: "worker2")).to be true
237
237
  expect(Delayed::Job.find(job.id).locked_by).to eq "worker2"
238
238
  end
239
239
  end
@@ -243,13 +243,13 @@ shared_examples_for "a backend" do
243
243
  job1 = create_job(strand: "myjobs")
244
244
  job2 = create_job(strand: "myjobs")
245
245
  expect(Delayed::Job.get_and_lock_next_available("w1")).to eq(job1)
246
- expect(Delayed::Job.get_and_lock_next_available("w2")).to eq(nil)
246
+ expect(Delayed::Job.get_and_lock_next_available("w2")).to be_nil
247
247
  job1.destroy
248
248
  # update time since the failed lock pushed it forward
249
249
  job2.run_at = 1.minute.ago
250
250
  job2.save!
251
251
  expect(Delayed::Job.get_and_lock_next_available("w3")).to eq(job2)
252
- expect(Delayed::Job.get_and_lock_next_available("w4")).to eq(nil)
252
+ expect(Delayed::Job.get_and_lock_next_available("w4")).to be_nil
253
253
  end
254
254
 
255
255
  it "fails to lock if an earlier job gets locked" do
@@ -301,7 +301,7 @@ shared_examples_for "a backend" do
301
301
  locked = [Delayed::Job.get_and_lock_next_available("w1"),
302
302
  Delayed::Job.get_and_lock_next_available("w2")]
303
303
  expect(jobs).to eq locked
304
- expect(Delayed::Job.get_and_lock_next_available("w3")).to eq(nil)
304
+ expect(Delayed::Job.get_and_lock_next_available("w3")).to be_nil
305
305
  end
306
306
 
307
307
  it "does not interfere with jobs in other strands" do
@@ -309,7 +309,7 @@ shared_examples_for "a backend" do
309
309
  locked = [Delayed::Job.get_and_lock_next_available("w1"),
310
310
  Delayed::Job.get_and_lock_next_available("w2")]
311
311
  expect(jobs).to eq locked
312
- expect(Delayed::Job.get_and_lock_next_available("w3")).to eq(nil)
312
+ expect(Delayed::Job.get_and_lock_next_available("w3")).to be_nil
313
313
  end
314
314
 
315
315
  it "does not find next jobs when given no priority" do
@@ -317,7 +317,7 @@ shared_examples_for "a backend" do
317
317
  first = Delayed::Job.get_and_lock_next_available("w1", Delayed::Settings.queue, nil, nil)
318
318
  second = Delayed::Job.get_and_lock_next_available("w2", Delayed::Settings.queue, nil, nil)
319
319
  expect(first).to eq jobs.first
320
- expect(second).to eq nil
320
+ expect(second).to be_nil
321
321
  end
322
322
 
323
323
  it "complains if you pass more than one strand-based option" do
@@ -538,11 +538,11 @@ shared_examples_for "a backend" do
538
538
  Delayed::Job.get_and_lock_next_available("w1")
539
539
  @job2 = create_job(singleton: "myjobs")
540
540
 
541
- expect(@job1.reload.next_in_strand).to eq true
542
- expect(@job2.reload.next_in_strand).to eq false
541
+ expect(@job1.reload.next_in_strand).to be true
542
+ expect(@job2.reload.next_in_strand).to be false
543
543
 
544
544
  @job1.destroy
545
- expect(@job2.reload.next_in_strand).to eq true
545
+ expect(@job2.reload.next_in_strand).to be true
546
546
  end
547
547
 
548
548
  it "handles transitions correctly when going from not stranded to stranded" do
@@ -552,13 +552,13 @@ shared_examples_for "a backend" do
552
552
  Delayed::Job.get_and_lock_next_available("w1")
553
553
  @job3 = create_job(singleton: "myjobs", strand: "myjobs2")
554
554
 
555
- expect(@job1.reload.next_in_strand).to eq true
556
- expect(@job2.reload.next_in_strand).to eq true
557
- expect(@job3.reload.next_in_strand).to eq false
555
+ expect(@job1.reload.next_in_strand).to be true
556
+ expect(@job2.reload.next_in_strand).to be true
557
+ expect(@job3.reload.next_in_strand).to be false
558
558
 
559
559
  @job2.destroy
560
- expect(@job1.reload.next_in_strand).to eq true
561
- expect(@job3.reload.next_in_strand).to eq true
560
+ expect(@job1.reload.next_in_strand).to be true
561
+ expect(@job3.reload.next_in_strand).to be true
562
562
  end
563
563
 
564
564
  it "does not violate n_strand=1 constraints when going from not stranded to stranded" do
@@ -568,13 +568,13 @@ shared_examples_for "a backend" do
568
568
  Delayed::Job.get_and_lock_next_available("w1")
569
569
  @job3 = create_job(singleton: "myjobs", strand: "myjobs")
570
570
 
571
- expect(@job1.reload.next_in_strand).to eq true
572
- expect(@job2.reload.next_in_strand).to eq true
573
- expect(@job3.reload.next_in_strand).to eq false
571
+ expect(@job1.reload.next_in_strand).to be true
572
+ expect(@job2.reload.next_in_strand).to be true
573
+ expect(@job3.reload.next_in_strand).to be false
574
574
 
575
575
  @job2.destroy
576
- expect(@job1.reload.next_in_strand).to eq true
577
- expect(@job3.reload.next_in_strand).to eq false
576
+ expect(@job1.reload.next_in_strand).to be true
577
+ expect(@job3.reload.next_in_strand).to be false
578
578
  end
579
579
 
580
580
  it "handles transitions correctly when going from stranded to another strand" do
@@ -582,11 +582,11 @@ shared_examples_for "a backend" do
582
582
  Delayed::Job.get_and_lock_next_available("w1")
583
583
  @job2 = create_job(singleton: "myjobs", strand: "myjobs2")
584
584
 
585
- expect(@job1.reload.next_in_strand).to eq true
586
- expect(@job2.reload.next_in_strand).to eq false
585
+ expect(@job1.reload.next_in_strand).to be true
586
+ expect(@job2.reload.next_in_strand).to be false
587
587
 
588
588
  @job1.destroy
589
- expect(@job2.reload.next_in_strand).to eq true
589
+ expect(@job2.reload.next_in_strand).to be true
590
590
  end
591
591
 
592
592
  it "does not violate n_strand=1 constraints when going from stranded to another strand" do
@@ -596,24 +596,24 @@ shared_examples_for "a backend" do
596
596
  Delayed::Job.get_and_lock_next_available("w1")
597
597
  @job3 = create_job(singleton: "myjobs", strand: "myjobs2")
598
598
 
599
- expect(@job1.reload.next_in_strand).to eq true
600
- expect(@job2.reload.next_in_strand).to eq true
601
- expect(@job3.reload.next_in_strand).to eq false
599
+ expect(@job1.reload.next_in_strand).to be true
600
+ expect(@job2.reload.next_in_strand).to be true
601
+ expect(@job3.reload.next_in_strand).to be false
602
602
 
603
603
  @job2.destroy
604
- expect(@job1.reload.next_in_strand).to eq true
605
- expect(@job3.reload.next_in_strand).to eq false
604
+ expect(@job1.reload.next_in_strand).to be true
605
+ expect(@job3.reload.next_in_strand).to be false
606
606
  end
607
607
 
608
608
  it "creates first as true, and second as false, then transitions to second when deleted" do
609
609
  @job1 = create_job(singleton: "myjobs")
610
610
  Delayed::Job.get_and_lock_next_available("w1")
611
611
  @job2 = create_job(singleton: "myjobs")
612
- expect(@job1.reload.next_in_strand).to eq true
613
- expect(@job2.reload.next_in_strand).to eq false
612
+ expect(@job1.reload.next_in_strand).to be true
613
+ expect(@job2.reload.next_in_strand).to be false
614
614
 
615
615
  @job1.destroy
616
- expect(@job2.reload.next_in_strand).to eq true
616
+ expect(@job2.reload.next_in_strand).to be true
617
617
  end
618
618
 
619
619
  it "when combined with a strand" do
@@ -834,9 +834,9 @@ shared_examples_for "a backend" do
834
834
 
835
835
  it "sets in_delayed_job?" do
836
836
  job = InDelayedJobTest.delay(ignore_transaction: true).check_in_job
837
- expect(Delayed::Job.in_delayed_job?).to eq(false)
837
+ expect(Delayed::Job.in_delayed_job?).to be(false)
838
838
  job.invoke_job
839
- expect(Delayed::Job.in_delayed_job?).to eq(false)
839
+ expect(Delayed::Job.in_delayed_job?).to be(false)
840
840
  end
841
841
 
842
842
  it "fails on job creation if an unsaved AR object is used" do
@@ -244,7 +244,7 @@ shared_examples_for "Delayed::Worker" do
244
244
  end
245
245
 
246
246
  it "is failed if it failed more than Settings.max_attempts times" do
247
- expect(@job.failed_at).to eq(nil)
247
+ expect(@job.failed_at).to be_nil
248
248
  Delayed::Settings.max_attempts.times { @job.reschedule }
249
249
  expect(Delayed::Job.list_jobs(:failed, 100).size).to eq(1)
250
250
  end
@@ -252,7 +252,7 @@ shared_examples_for "Delayed::Worker" do
252
252
  it "is not failed if it failed fewer than Settings.max_attempts times" do
253
253
  (Delayed::Settings.max_attempts - 1).times { @job.reschedule }
254
254
  @job = Delayed::Job.find(@job.id)
255
- expect(@job.failed_at).to eq(nil)
255
+ expect(@job.failed_at).to be_nil
256
256
  end
257
257
 
258
258
  it "is failed if it has expired" do
@@ -396,7 +396,7 @@ shared_examples_for "Delayed::Worker" do
396
396
  expect(@worker).to receive(:exit?).and_return(true)
397
397
  Delayed::Worker.lifecycle.before(:execute) { |w| w == @worker && fired = true }
398
398
  @worker.start
399
- expect(fired).to eq(true)
399
+ expect(fired).to be(true)
400
400
  end
401
401
  end
402
402
 
data/spec/spec_helper.rb CHANGED
@@ -55,14 +55,16 @@ connection_config = {
55
55
  encoding: "utf8",
56
56
  username: ENV["TEST_DB_USERNAME"],
57
57
  database: ENV["TEST_DB_DATABASE"],
58
- min_messages: "notice"
58
+ min_messages: "notice",
59
+ # Ensure the pool is big enough the deadlock tests don't get starved for connections by rails instead
60
+ pool: 20
59
61
  }
60
62
 
61
63
  def migrate(file)
62
64
  ActiveRecord::MigrationContext.new(file, ActiveRecord::SchemaMigration).migrate
63
65
  end
64
66
 
65
- # create the test db if it does not exist, to help out wwtd
67
+ # create the test db if it does not exist
66
68
  ActiveRecord::Base.establish_connection(connection_config.merge(database: "postgres"))
67
69
  begin
68
70
  ActiveRecord::Base.connection.create_database(connection_config[:database])
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inst-jobs
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.9
4
+ version: 3.0.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cody Cutrer
8
8
  - Ethan Vizitei
9
9
  - Jacob Burroughs
10
- autorequire:
10
+ autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-02-23 00:00:00.000000000 Z
13
+ date: 2022-03-21 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activerecord
@@ -32,14 +32,14 @@ dependencies:
32
32
  requirements:
33
33
  - - "~>"
34
34
  - !ruby/object:Gem::Version
35
- version: '0.4'
35
+ version: 0.4.4
36
36
  type: :runtime
37
37
  prerelease: false
38
38
  version_requirements: !ruby/object:Gem::Requirement
39
39
  requirements:
40
40
  - - "~>"
41
41
  - !ruby/object:Gem::Version
42
- version: '0.4'
42
+ version: 0.4.4
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: activesupport
45
45
  requirement: !ruby/object:Gem::Requirement
@@ -410,21 +410,7 @@ dependencies:
410
410
  - - ">="
411
411
  - !ruby/object:Gem::Version
412
412
  version: '0'
413
- - !ruby/object:Gem::Dependency
414
- name: wwtd
415
- requirement: !ruby/object:Gem::Requirement
416
- requirements:
417
- - - "~>"
418
- - !ruby/object:Gem::Version
419
- version: 1.4.0
420
- type: :development
421
- prerelease: false
422
- version_requirements: !ruby/object:Gem::Requirement
423
- requirements:
424
- - - "~>"
425
- - !ruby/object:Gem::Version
426
- version: 1.4.0
427
- description:
413
+ description:
428
414
  email:
429
415
  - cody@instructure.com
430
416
  - evizitei@instructure.com
@@ -538,8 +524,9 @@ files:
538
524
  - spec/spec_helper.rb
539
525
  homepage: https://github.com/instructure/inst-jobs
540
526
  licenses: []
541
- metadata: {}
542
- post_install_message:
527
+ metadata:
528
+ rubygems_mfa_required: 'true'
529
+ post_install_message:
543
530
  rdoc_options: []
544
531
  require_paths:
545
532
  - lib
@@ -555,31 +542,31 @@ required_rubygems_version: !ruby/object:Gem::Requirement
555
542
  version: '0'
556
543
  requirements: []
557
544
  rubygems_version: 3.1.4
558
- signing_key:
545
+ signing_key:
559
546
  specification_version: 4
560
547
  summary: Instructure-maintained fork of delayed_job
561
548
  test_files:
562
- - spec/active_record_job_spec.rb
549
+ - spec/sample_jobs.rb
550
+ - spec/spec_helper.rb
551
+ - spec/shared_jobs_specs.rb
552
+ - spec/shared/performable_method.rb
553
+ - spec/shared/testing.rb
554
+ - spec/shared/delayed_batch.rb
555
+ - spec/shared/worker.rb
556
+ - spec/shared/delayed_method.rb
557
+ - spec/shared/shared_backend.rb
558
+ - spec/migrate/20140924140513_add_story_table.rb
559
+ - spec/delayed/server_spec.rb
563
560
  - spec/delayed/cli_spec.rb
564
561
  - spec/delayed/daemon_spec.rb
565
- - spec/delayed/message_sending_spec.rb
562
+ - spec/delayed/worker_spec.rb
566
563
  - spec/delayed/periodic_spec.rb
567
- - spec/delayed/server_spec.rb
564
+ - spec/delayed/message_sending_spec.rb
568
565
  - spec/delayed/settings_spec.rb
569
566
  - spec/delayed/work_queue/in_process_spec.rb
567
+ - spec/delayed/work_queue/parent_process_spec.rb
570
568
  - spec/delayed/work_queue/parent_process/client_spec.rb
571
569
  - spec/delayed/work_queue/parent_process/server_spec.rb
572
- - spec/delayed/work_queue/parent_process_spec.rb
573
- - spec/delayed/worker/consul_health_check_spec.rb
574
570
  - spec/delayed/worker/health_check_spec.rb
575
- - spec/delayed/worker_spec.rb
576
- - spec/migrate/20140924140513_add_story_table.rb
577
- - spec/sample_jobs.rb
578
- - spec/shared/delayed_batch.rb
579
- - spec/shared/delayed_method.rb
580
- - spec/shared/performable_method.rb
581
- - spec/shared/shared_backend.rb
582
- - spec/shared/testing.rb
583
- - spec/shared/worker.rb
584
- - spec/shared_jobs_specs.rb
585
- - spec/spec_helper.rb
571
+ - spec/delayed/worker/consul_health_check_spec.rb
572
+ - spec/active_record_job_spec.rb