inst-jobs-statsd 1.2.3 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b3de8c2ebb6a0209eece2b69f072091c760908020c2957334e34303dcf209305
4
- data.tar.gz: 5fb37614c812c728b8448f447597d1b4b6d9c7f6856cdb5052ea36ea3d47cb40
3
+ metadata.gz: 792432d5ab16fd1e7cbf711085bb9067ff8e299526d2bd4be44fd35422d121a0
4
+ data.tar.gz: 3f1d439fc92c9dc54cea4001f56cce26c88bdc14b61cdf5c364b9f819dc9750c
5
5
  SHA512:
6
- metadata.gz: 912a311942077658bed03600aa01cc2c5fd114ec381a04b38173a1573d1c956f5a76fdebdc2ff5b26707fe1ba4b0039748b225ce4647c7b0291849dbd8d7f980
7
- data.tar.gz: e1ee70af317c0a531fb005be42541b5cb4a1813afa5d1d275314eb7bd1873e00edd07989fa546453b86786034952f01cdb5eeeed77272e79d404b34afe007170
6
+ metadata.gz: b4bfd22211bcec84a9caf210a68081b8a002a0011c1d9b232b4b4f0cd638506c98f601afce2f29274285761954fcab2ca143844cc195915f8b48d66376658639
7
+ data.tar.gz: 2113f8a57bfcb288688326f1f1569524a661998999ab85e5567289010b9c3a8ababd6648a375560218b9654a66525d9ffb995f1fa96d48c5f441bf740cc8ca7a
@@ -10,7 +10,6 @@ require_relative 'inst_jobs_statsd/naming'
10
10
 
11
11
  require_relative 'inst_jobs_statsd/stats/counters'
12
12
  require_relative 'inst_jobs_statsd/stats/counters/failed'
13
- require_relative 'inst_jobs_statsd/stats/counters/orphaned'
14
13
  require_relative 'inst_jobs_statsd/stats/counters/run'
15
14
 
16
15
  require_relative 'inst_jobs_statsd/stats/periodic'
@@ -7,8 +7,8 @@ module InstJobsStatsd
7
7
  end
8
8
 
9
9
  module ClassMethods
10
- def track_jobs
11
- @jobs_tracker ||= JobsTracker.new
10
+ def track_jobs(enable_periodic_queries: true)
11
+ @jobs_tracker ||= JobsTracker.new(enable_periodic_queries: enable_periodic_queries)
12
12
  end
13
13
  end
14
14
  end
@@ -1,21 +1,22 @@
1
1
  module InstJobsStatsd
2
2
  class JobsTracker
3
- def self.track
4
- @current_tracking = new
3
+ def self.track(enable_periodic_queries: true)
4
+ @current_tracking = new(enable_periodic_queries: enable_periodic_queries)
5
5
  yield
6
6
  tracking = @current_tracking
7
7
  @current_tracking = nil
8
8
  tracking
9
9
  end
10
10
 
11
- def initialize
11
+ def initialize(enable_periodic_queries: true)
12
12
  Stats::Counters::Failed.enable
13
- Stats::Counters::Orphaned.enable
14
13
  Stats::Counters::Run.enable
15
14
 
16
- Stats::Periodic::Failed.enable
17
- Stats::Periodic::Queue.enable
18
- Stats::Periodic::Run.enable
15
+ if enable_periodic_queries
16
+ Stats::Periodic::Failed.enable
17
+ Stats::Periodic::Queue.enable
18
+ Stats::Periodic::Run.enable
19
+ end
19
20
 
20
21
  Stats::Timing::Failed.enable
21
22
  Stats::Timing::Perform.enable
@@ -45,6 +45,7 @@ module InstJobsStatsd
45
45
  tag = obj_tag
46
46
  tag = [obj_tag, method_tag].join('.') if method_tag.present?
47
47
  tags[:tag] = tag
48
+ tags
48
49
  end
49
50
 
50
51
  def self.custom_tags(job, tags)
@@ -1,3 +1,3 @@
1
1
  module InstJobsStatsd
2
- VERSION = '1.2.3'.freeze
2
+ VERSION = '2.0.0'.freeze
3
3
  end
@@ -2,6 +2,7 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec :path=>"../../"
4
4
 
5
- gem "rails", "~> 4.2.5"
6
- gem "after_transaction_commit", "<2"
7
- gem 'test_after_commit', '0.4.1'
5
+ gem "rails", "~> 4.2.11"
6
+ gem "pg", "~> 0.21.0"
7
+ gem "after_transaction_commit", "< 2"
8
+ gem "test_after_commit", "1.1.0"
@@ -2,6 +2,7 @@ source "https://rubygems.org"
2
2
 
3
3
  gemspec :path=>"../../"
4
4
 
5
- gem "rails", "~> 5.1.0"
6
- gem 'sinatra', "2.0.0.beta2"
7
- gem 'sinatra-contrib', "2.0.0.beta2"
5
+ gem "rails", "~> 5.1.7"
6
+ gem "sinatra", "~> 2.0.8"
7
+ gem "sinatra-contrib", "~> 2.0.8"
8
+ gem "sprockets", "~> 3.7" # 4.0+ requires Ruby 2.5
@@ -0,0 +1,7 @@
1
+ source "https://rubygems.org"
2
+
3
+ gemspec :path=>"../../"
4
+
5
+ gem "rails", "~> 6.0"
6
+ gem "sinatra", "~> 2.0.8"
7
+ gem "sinatra-contrib", "~> 2.0.8"
@@ -13,7 +13,6 @@ RSpec.describe InstJobsStatsd::JobsTracker do
13
13
  describe '.initialize' do
14
14
  it 'enables everything' do
15
15
  expect(InstJobsStatsd::Stats::Counters::Failed).to receive(:enable)
16
- expect(InstJobsStatsd::Stats::Counters::Orphaned).to receive(:enable)
17
16
  expect(InstJobsStatsd::Stats::Counters::Run).to receive(:enable)
18
17
 
19
18
  expect(InstJobsStatsd::Stats::Periodic::Failed).to receive(:enable)
@@ -40,5 +40,17 @@ RSpec.describe InstJobsStatsd::Naming do
40
40
  it { should include 'delayedjob.wut.region_name' }
41
41
  it { should include 'delayedjob.wut.region_name.tag.a_tag_name' }
42
42
  end
43
+
44
+ describe '.dd_job_tags' do
45
+ it 'works' do
46
+ job = double(tag: 'Account.run_reports_later', shard: double(id: 101), strand: 'special')
47
+ expect(InstJobsStatsd::Naming.dd_job_tags(job)).to eq({ tag: 'Account.run_reports_later', jobshard: 101})
48
+ end
49
+
50
+ it 'properly munges job tags' do
51
+ job = double(tag: 'Quizzes::Quiz#do_something', strand: nil)
52
+ expect(InstJobsStatsd::Naming.dd_job_tags(job)).to eq({ tag: 'Quizzes-Quiz.do_something'})
53
+ end
54
+ end
43
55
  end
44
56
  end
@@ -13,7 +13,7 @@ RSpec.describe InstJobsStatsd::Stats::Counters::Failed do
13
13
  .with(array_including(/\.failed$/), 1, 1, { short_stat: :failed, tags: {} })
14
14
 
15
15
  InstJobsStatsd::Stats::Counters::Failed.enable_failed_count
16
- x.send_later(:perform)
16
+ x.delay.perform
17
17
  Delayed::Job.first.fail!
18
18
  end
19
19
  end
@@ -13,7 +13,7 @@ RSpec.describe InstJobsStatsd::Stats::Counters::Run do
13
13
  Delayed::Worker.lifecycle.reset!
14
14
  InstJobsStatsd::Stats::Counters::Run.enable
15
15
 
16
- 2.times { x.send_later(:perform) }
16
+ 2.times { x.delay.perform }
17
17
  end
18
18
 
19
19
  it do
@@ -18,7 +18,7 @@ RSpec.describe InstJobsStatsd::Stats::Periodic::Failed do
18
18
  InstJobsStatsd::Stats::Periodic.enable_callbacks
19
19
  InstJobsStatsd::Stats::Periodic::Failed.enable_failed_depth
20
20
 
21
- x.send_later(:perform)
21
+ x.delay.perform
22
22
  Delayed::Job.first.fail!
23
23
  end
24
24
 
@@ -18,12 +18,12 @@ RSpec.describe InstJobsStatsd::Stats::Periodic::Queue do
18
18
  before do
19
19
  InstJobsStatsd::Stats::Periodic::Queue.enable_queue_depth
20
20
 
21
- x.send_later(:perform)
21
+ x.delay.perform
22
22
  Delayed::Job.first.update(locked_at: Delayed::Job.db_time_now, locked_by: 'test')
23
23
 
24
- x.send_later(:perform)
25
- x.send_later_enqueue_args(:perform, run_at: now + 1.minute)
26
- x.send_later_enqueue_args(:perform, run_at: now + 10.minutes)
24
+ x.delay.perform
25
+ x.delay(run_at: now + 1.minute).perform
26
+ x.delay(run_at: now + 10.minutes).perform
27
27
  end
28
28
 
29
29
  it do
@@ -56,12 +56,12 @@ RSpec.describe InstJobsStatsd::Stats::Periodic::Queue do
56
56
  before do
57
57
  InstJobsStatsd::Stats::Periodic::Queue.enable_queue_age
58
58
 
59
- x.send_later(:perform)
59
+ x.delay.perform
60
60
  Delayed::Job.first.update(locked_at: Delayed::Job.db_time_now, locked_by: 'test')
61
61
 
62
- x.send_later(:perform)
63
- x.send_later_enqueue_args(:perform, run_at: now + 1.minute)
64
- x.send_later_enqueue_args(:perform, run_at: now + 10.minutes)
62
+ x.delay.perform
63
+ x.delay(run_at: now + 1.minute).perform
64
+ x.delay(run_at: now + 10.minutes).perform
65
65
  end
66
66
 
67
67
  it do
@@ -18,8 +18,8 @@ RSpec.describe InstJobsStatsd::Stats::Periodic::Run do
18
18
  before do
19
19
  InstJobsStatsd::Stats::Periodic::Run.enable_run_depth
20
20
 
21
- x.send_later(:perform)
22
- x.send_later(:perform)
21
+ x.delay.perform
22
+ x.delay.perform
23
23
  Delayed::Job.first.update(locked_at: Delayed::Job.db_time_now, locked_by: 'test')
24
24
  end
25
25
 
@@ -37,8 +37,8 @@ RSpec.describe InstJobsStatsd::Stats::Periodic::Run do
37
37
  before do
38
38
  InstJobsStatsd::Stats::Periodic::Run.enable_run_age
39
39
 
40
- x.send_later(:perform)
41
- x.send_later(:perform)
40
+ x.delay.perform
41
+ x.delay.perform
42
42
  Delayed::Job.first.update(locked_at: now, locked_by: 'test')
43
43
  end
44
44
 
@@ -35,7 +35,15 @@ ActiveRecord::Base.establish_connection(connection_config)
35
35
 
36
36
  # Apply the migrations from the inst-jobs gem
37
37
  inst_jobs_spec = Gem::Specification.find_by_name('inst-jobs')
38
- ActiveRecord::Migrator.migrate(inst_jobs_spec.gem_dir + '/db/migrate')
39
- ActiveRecord::Migrator.migrate(inst_jobs_spec.gem_dir + '/spec/migrate')
38
+ if ::Rails.version >= '6'
39
+ sm = ActiveRecord::Base.connection.schema_migration
40
+ migrations = ActiveRecord::MigrationContext.new(inst_jobs_spec.gem_dir + '/db/migrate', sm).migrations
41
+ ActiveRecord::Migrator.new(:up, migrations, sm).migrate
42
+ migrations = ActiveRecord::MigrationContext.new(inst_jobs_spec.gem_dir + '/spec/migrate', sm).migrations
43
+ ActiveRecord::Migrator.new(:up, migrations, sm).migrate
44
+ else
45
+ ActiveRecord::Migrator.migrate(inst_jobs_spec.gem_dir + '/db/migrate')
46
+ ActiveRecord::Migrator.migrate(inst_jobs_spec.gem_dir + '/spec/migrate')
47
+ end
40
48
  Delayed::Backend::ActiveRecord::Job.reset_column_information
41
49
  Delayed::Backend::ActiveRecord::Job::Failed.reset_column_information
@@ -1,4 +1,4 @@
1
- if /^2\.4/ =~ RUBY_VERSION && /50\./ =~ ENV['BUNDLE_GEMFILE'] # Limit coverage to one build
1
+ if /^2\.7/ =~ RUBY_VERSION && /51\./ =~ ENV['BUNDLE_GEMFILE'] # Limit coverage to one build
2
2
  require 'simplecov'
3
3
 
4
4
  SimpleCov.start do
@@ -6,8 +6,6 @@ if /^2\.4/ =~ RUBY_VERSION && /50\./ =~ ENV['BUNDLE_GEMFILE'] # Limit coverage t
6
6
  add_filter 'spec'
7
7
  track_files 'lib/**/*.rb'
8
8
  end
9
-
10
- SimpleCov.minimum_coverage(100)
11
9
  end
12
10
 
13
11
  require 'inst-jobs-statsd'
metadata CHANGED
@@ -1,35 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inst-jobs-statsd
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jeremy Slade
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-25 00:00:00.000000000 Z
11
+ date: 2020-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inst-jobs
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '0.13'
20
- - - "<"
17
+ - - "~>"
21
18
  - !ruby/object:Gem::Version
22
- version: '0.16'
19
+ version: '1.0'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- version: '0.13'
30
- - - "<"
24
+ - - "~>"
31
25
  - !ruby/object:Gem::Version
32
- version: '0.16'
26
+ version: '1.0'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: inst_statsd
35
29
  requirement: !ruby/object:Gem::Requirement
@@ -96,16 +90,16 @@ dependencies:
96
90
  name: database_cleaner
97
91
  requirement: !ruby/object:Gem::Requirement
98
92
  requirements:
99
- - - '='
93
+ - - "~>"
100
94
  - !ruby/object:Gem::Version
101
- version: 1.6.1
95
+ version: '1.7'
102
96
  type: :development
103
97
  prerelease: false
104
98
  version_requirements: !ruby/object:Gem::Requirement
105
99
  requirements:
106
- - - '='
100
+ - - "~>"
107
101
  - !ruby/object:Gem::Version
108
- version: 1.6.1
102
+ version: '1.7'
109
103
  - !ruby/object:Gem::Dependency
110
104
  name: factory_girl
111
105
  requirement: !ruby/object:Gem::Requirement
@@ -124,16 +118,16 @@ dependencies:
124
118
  name: pg
125
119
  requirement: !ruby/object:Gem::Requirement
126
120
  requirements:
127
- - - '='
121
+ - - "~>"
128
122
  - !ruby/object:Gem::Version
129
- version: 0.21.0
123
+ version: '1.2'
130
124
  type: :development
131
125
  prerelease: false
132
126
  version_requirements: !ruby/object:Gem::Requirement
133
127
  requirements:
134
- - - '='
128
+ - - "~>"
135
129
  - !ruby/object:Gem::Version
136
- version: 0.21.0
130
+ version: '1.2'
137
131
  - !ruby/object:Gem::Dependency
138
132
  name: pry
139
133
  requirement: !ruby/object:Gem::Requirement
@@ -166,44 +160,44 @@ dependencies:
166
160
  name: rspec
167
161
  requirement: !ruby/object:Gem::Requirement
168
162
  requirements:
169
- - - '='
163
+ - - "~>"
170
164
  - !ruby/object:Gem::Version
171
- version: 3.4.0
165
+ version: '3.9'
172
166
  type: :development
173
167
  prerelease: false
174
168
  version_requirements: !ruby/object:Gem::Requirement
175
169
  requirements:
176
- - - '='
170
+ - - "~>"
177
171
  - !ruby/object:Gem::Version
178
- version: 3.4.0
172
+ version: '3.9'
179
173
  - !ruby/object:Gem::Dependency
180
174
  name: rubocop
181
175
  requirement: !ruby/object:Gem::Requirement
182
176
  requirements:
183
177
  - - "~>"
184
178
  - !ruby/object:Gem::Version
185
- version: '0'
179
+ version: 0.48.0
186
180
  type: :development
187
181
  prerelease: false
188
182
  version_requirements: !ruby/object:Gem::Requirement
189
183
  requirements:
190
184
  - - "~>"
191
185
  - !ruby/object:Gem::Version
192
- version: '0'
186
+ version: 0.48.0
193
187
  - !ruby/object:Gem::Dependency
194
188
  name: simplecov
195
189
  requirement: !ruby/object:Gem::Requirement
196
190
  requirements:
197
191
  - - "~>"
198
192
  - !ruby/object:Gem::Version
199
- version: '0.14'
193
+ version: '0.17'
200
194
  type: :development
201
195
  prerelease: false
202
196
  version_requirements: !ruby/object:Gem::Requirement
203
197
  requirements:
204
198
  - - "~>"
205
199
  - !ruby/object:Gem::Version
206
- version: '0.14'
200
+ version: '0.17'
207
201
  - !ruby/object:Gem::Dependency
208
202
  name: timecop
209
203
  requirement: !ruby/object:Gem::Requirement
@@ -224,15 +218,15 @@ dependencies:
224
218
  requirements:
225
219
  - - "~>"
226
220
  - !ruby/object:Gem::Version
227
- version: 1.3.0
221
+ version: 1.4.0
228
222
  type: :development
229
223
  prerelease: false
230
224
  version_requirements: !ruby/object:Gem::Requirement
231
225
  requirements:
232
226
  - - "~>"
233
227
  - !ruby/object:Gem::Version
234
- version: 1.3.0
235
- description:
228
+ version: 1.4.0
229
+ description:
236
230
  email:
237
231
  - jslade@instructure.com
238
232
  executables: []
@@ -245,7 +239,6 @@ files:
245
239
  - lib/inst_jobs_statsd/naming.rb
246
240
  - lib/inst_jobs_statsd/stats/counters.rb
247
241
  - lib/inst_jobs_statsd/stats/counters/failed.rb
248
- - lib/inst_jobs_statsd/stats/counters/orphaned.rb
249
242
  - lib/inst_jobs_statsd/stats/counters/run.rb
250
243
  - lib/inst_jobs_statsd/stats/periodic.rb
251
244
  - lib/inst_jobs_statsd/stats/periodic/failed.rb
@@ -259,12 +252,11 @@ files:
259
252
  - spec/factories/jobs.rb
260
253
  - spec/factories/workers.rb
261
254
  - spec/gemfiles/42.gemfile
262
- - spec/gemfiles/50.gemfile
263
255
  - spec/gemfiles/51.gemfile
256
+ - spec/gemfiles/60.gemfile
264
257
  - spec/inst_jobs_statsd/jobs_tracker_spec.rb
265
258
  - spec/inst_jobs_statsd/naming_spec.rb
266
259
  - spec/inst_jobs_statsd/stats/counters/failed_spec.rb
267
- - spec/inst_jobs_statsd/stats/counters/orphaned_spec.rb
268
260
  - spec/inst_jobs_statsd/stats/counters/run_spec.rb
269
261
  - spec/inst_jobs_statsd/stats/periodic/failed_spec.rb
270
262
  - spec/inst_jobs_statsd/stats/periodic/queue_spec.rb
@@ -282,7 +274,7 @@ homepage: https://github.com/instructure/inst-jobs-statsd
282
274
  licenses:
283
275
  - MIT
284
276
  metadata: {}
285
- post_install_message:
277
+ post_install_message:
286
278
  rdoc_options: []
287
279
  require_paths:
288
280
  - lib
@@ -290,16 +282,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
290
282
  requirements:
291
283
  - - ">="
292
284
  - !ruby/object:Gem::Version
293
- version: '2.3'
285
+ version: '2.4'
294
286
  required_rubygems_version: !ruby/object:Gem::Requirement
295
287
  requirements:
296
288
  - - ">="
297
289
  - !ruby/object:Gem::Version
298
290
  version: '0'
299
291
  requirements: []
300
- rubyforge_project:
301
- rubygems_version: 2.7.6
302
- signing_key:
292
+ rubygems_version: 3.1.4
293
+ signing_key:
303
294
  specification_version: 4
304
295
  summary: Stats reporting for inst-jobs
305
296
  test_files:
@@ -313,14 +304,13 @@ test_files:
313
304
  - spec/inst_jobs_statsd/stats/periodic_spec.rb
314
305
  - spec/inst_jobs_statsd/stats/counters/failed_spec.rb
315
306
  - spec/inst_jobs_statsd/stats/counters/run_spec.rb
316
- - spec/inst_jobs_statsd/stats/counters/orphaned_spec.rb
317
307
  - spec/inst_jobs_statsd/stats/timing_spec.rb
318
308
  - spec/inst_jobs_statsd/jobs_tracker_spec.rb
319
309
  - spec/spec_helper.rb
320
310
  - spec/setup_test_db.rb
321
311
  - spec/matchers.rb
312
+ - spec/gemfiles/60.gemfile
322
313
  - spec/gemfiles/42.gemfile
323
- - spec/gemfiles/50.gemfile
324
314
  - spec/gemfiles/51.gemfile
325
315
  - spec/factories/workers.rb
326
316
  - spec/factories/jobs.rb
@@ -1,34 +0,0 @@
1
- module InstJobsStatsd
2
- module Stats
3
- module Counters
4
- module Orphaned
5
- def self.enable
6
- enable_orphaned_count
7
- end
8
-
9
- # The idea of the orphaned count: when a job finishes, if there
10
- # are other jobs locked_by the *same* worker, they must have been
11
- # orphaned, because they are not going to be picked up and run by
12
- # the worker -- the work queue is designed to only have one job
13
- # locked_by a worker at a time.
14
- # This is based on the symptom seen in AMS-447, where mutliple
15
- # rows of the jobs table can be (incorrectly) updated by the same
16
- # query.
17
- def self.enable_orphaned_count
18
- Delayed::Worker.lifecycle.before(:perform) do |_worker, job|
19
- report_orphaned_count(job)
20
- end
21
- end
22
-
23
- def self.report_orphaned_count(job)
24
- scope = Delayed::Job.where(
25
- 'locked_by = ? AND locked_at = ? AND id <> ?',
26
- job.locked_by, job.locked_at, job.id
27
- )
28
- count = scope.count
29
- Counters.report_count(:orphaned, count, job: job) unless count.zero?
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,7 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- gemspec :path=>"../../"
4
-
5
- gem "rails", "~> 5.0.0"
6
- gem 'sinatra', "2.0.0.beta2"
7
- gem 'sinatra-contrib', "2.0.0.beta2"
@@ -1,27 +0,0 @@
1
- RSpec.describe InstJobsStatsd::Stats::Counters::Orphaned do
2
- describe '.enable' do
3
- it 'enables all the things' do
4
- expect(InstJobsStatsd::Stats::Counters::Orphaned).to receive(:enable_orphaned_count)
5
- InstJobsStatsd::Stats::Counters::Orphaned.enable
6
- end
7
- end
8
-
9
- describe '.report_orphaned_count' do
10
- let(:x) { Struct.new(:perform).new(true) }
11
-
12
- before do
13
- Delayed::Worker.lifecycle.reset!
14
- InstJobsStatsd::Stats::Counters::Orphaned.enable
15
-
16
- 4.times { x.send_later(:perform) }
17
- Delayed::Job.order(:id).limit(3)
18
- .update_all(locked_by: 'test', locked_at: Delayed::Job.db_time_now)
19
- end
20
-
21
- it do
22
- expect(InstStatsd::Statsd).to receive(:count)
23
- .with(array_including(/\.orphaned$/), 2, 1, { short_stat: anything, tags: {} })
24
- Delayed::Worker.lifecycle.run_callbacks(:perform, nil, Delayed::Job.first) {}
25
- end
26
- end
27
- end