good_job 1.2.3 → 1.3.1

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.
Files changed (37) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +127 -0
  3. data/README.md +324 -160
  4. data/engine/app/controllers/good_job/active_jobs_controller.rb +8 -0
  5. data/engine/app/controllers/good_job/base_controller.rb +5 -0
  6. data/engine/app/controllers/good_job/dashboards_controller.rb +50 -0
  7. data/engine/app/helpers/good_job/application_helper.rb +4 -0
  8. data/engine/app/views/assets/_style.css.erb +16 -0
  9. data/engine/app/views/good_job/active_jobs/show.html.erb +1 -0
  10. data/engine/app/views/good_job/dashboards/index.html.erb +19 -0
  11. data/engine/app/views/layouts/good_job/base.html.erb +61 -0
  12. data/engine/app/views/shared/_chart.erb +51 -0
  13. data/engine/app/views/shared/_jobs_table.erb +26 -0
  14. data/engine/app/views/vendor/bootstrap/_bootstrap-native.js.erb +1662 -0
  15. data/engine/app/views/vendor/bootstrap/_bootstrap.css.erb +10258 -0
  16. data/engine/app/views/vendor/chartist/_chartist.css.erb +613 -0
  17. data/engine/app/views/vendor/chartist/_chartist.js.erb +4516 -0
  18. data/engine/config/routes.rb +4 -0
  19. data/engine/lib/good_job/engine.rb +5 -0
  20. data/lib/active_job/queue_adapters/good_job_adapter.rb +3 -2
  21. data/lib/generators/good_job/install_generator.rb +8 -0
  22. data/lib/good_job.rb +59 -27
  23. data/lib/good_job/adapter.rb +41 -0
  24. data/lib/good_job/cli.rb +70 -14
  25. data/lib/good_job/configuration.rb +61 -2
  26. data/lib/good_job/job.rb +126 -36
  27. data/lib/good_job/lockable.rb +126 -13
  28. data/lib/good_job/log_subscriber.rb +80 -16
  29. data/lib/good_job/multi_scheduler.rb +6 -0
  30. data/lib/good_job/notifier.rb +57 -31
  31. data/lib/good_job/performer.rb +38 -0
  32. data/lib/good_job/poller.rb +94 -0
  33. data/lib/good_job/railtie.rb +1 -0
  34. data/lib/good_job/scheduler.rb +54 -81
  35. data/lib/good_job/version.rb +2 -1
  36. metadata +154 -11
  37. data/lib/good_job/pg_locks.rb +0 -21
@@ -1,3 +1,4 @@
1
1
  module GoodJob
2
- VERSION = '1.2.3'.freeze
2
+ # GoodJob gem version.
3
+ VERSION = '1.3.1'.freeze
3
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: good_job
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.3
4
+ version: 1.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ben Sheldon
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-08-27 00:00:00.000000000 Z
11
+ date: 2020-11-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.1.0
19
+ version: 5.2.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.1.0
26
+ version: 5.2.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: activerecord
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 5.1.0
33
+ version: 5.2.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 5.1.0
40
+ version: 5.2.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: concurrent-ruby
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: 5.1.0
75
+ version: 5.2.0
76
76
  type: :runtime
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
- version: 5.1.0
82
+ version: 5.2.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: thor
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +94,20 @@ dependencies:
94
94
  - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: 0.14.1
97
+ - !ruby/object:Gem::Dependency
98
+ name: zeitwerk
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '2.0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '2.0'
97
111
  - !ruby/object:Gem::Dependency
98
112
  name: appraisal
99
113
  requirement: !ruby/object:Gem::Requirement
@@ -108,6 +122,20 @@ dependencies:
108
122
  - - ">="
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: capybara
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
111
139
  - !ruby/object:Gem::Dependency
112
140
  name: database_cleaner
113
141
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +164,20 @@ dependencies:
136
164
  - - ">="
137
165
  - !ruby/object:Gem::Version
138
166
  version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: erb_lint
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - ">="
172
+ - !ruby/object:Gem::Version
173
+ version: '0'
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
139
181
  - !ruby/object:Gem::Dependency
140
182
  name: foreman
141
183
  requirement: !ruby/object:Gem::Requirement
@@ -178,6 +220,48 @@ dependencies:
178
220
  - - ">="
179
221
  - !ruby/object:Gem::Version
180
222
  version: '0'
223
+ - !ruby/object:Gem::Dependency
224
+ name: kramdown
225
+ requirement: !ruby/object:Gem::Requirement
226
+ requirements:
227
+ - - ">="
228
+ - !ruby/object:Gem::Version
229
+ version: '0'
230
+ type: :development
231
+ prerelease: false
232
+ version_requirements: !ruby/object:Gem::Requirement
233
+ requirements:
234
+ - - ">="
235
+ - !ruby/object:Gem::Version
236
+ version: '0'
237
+ - !ruby/object:Gem::Dependency
238
+ name: kramdown-parser-gfm
239
+ requirement: !ruby/object:Gem::Requirement
240
+ requirements:
241
+ - - ">="
242
+ - !ruby/object:Gem::Version
243
+ version: '0'
244
+ type: :development
245
+ prerelease: false
246
+ version_requirements: !ruby/object:Gem::Requirement
247
+ requirements:
248
+ - - ">="
249
+ - !ruby/object:Gem::Version
250
+ version: '0'
251
+ - !ruby/object:Gem::Dependency
252
+ name: mdl
253
+ requirement: !ruby/object:Gem::Requirement
254
+ requirements:
255
+ - - ">="
256
+ - !ruby/object:Gem::Version
257
+ version: '0'
258
+ type: :development
259
+ prerelease: false
260
+ version_requirements: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
181
265
  - !ruby/object:Gem::Dependency
182
266
  name: pry-rails
183
267
  requirement: !ruby/object:Gem::Requirement
@@ -206,6 +290,20 @@ dependencies:
206
290
  - - ">="
207
291
  - !ruby/object:Gem::Version
208
292
  version: '0'
293
+ - !ruby/object:Gem::Dependency
294
+ name: rails
295
+ requirement: !ruby/object:Gem::Requirement
296
+ requirements:
297
+ - - ">="
298
+ - !ruby/object:Gem::Version
299
+ version: '0'
300
+ type: :development
301
+ prerelease: false
302
+ version_requirements: !ruby/object:Gem::Requirement
303
+ requirements:
304
+ - - ">="
305
+ - !ruby/object:Gem::Version
306
+ version: '0'
209
307
  - !ruby/object:Gem::Dependency
210
308
  name: rbtrace
211
309
  requirement: !ruby/object:Gem::Requirement
@@ -290,6 +388,20 @@ dependencies:
290
388
  - - ">="
291
389
  - !ruby/object:Gem::Version
292
390
  version: '0'
391
+ - !ruby/object:Gem::Dependency
392
+ name: selenium-webdriver
393
+ requirement: !ruby/object:Gem::Requirement
394
+ requirements:
395
+ - - ">="
396
+ - !ruby/object:Gem::Version
397
+ version: '0'
398
+ type: :development
399
+ prerelease: false
400
+ version_requirements: !ruby/object:Gem::Requirement
401
+ requirements:
402
+ - - ">="
403
+ - !ruby/object:Gem::Version
404
+ version: '0'
293
405
  - !ruby/object:Gem::Dependency
294
406
  name: sigdump
295
407
  requirement: !ruby/object:Gem::Requirement
@@ -318,6 +430,20 @@ dependencies:
318
430
  - - ">="
319
431
  - !ruby/object:Gem::Version
320
432
  version: '0'
433
+ - !ruby/object:Gem::Dependency
434
+ name: yard-activesupport-concern
435
+ requirement: !ruby/object:Gem::Requirement
436
+ requirements:
437
+ - - ">="
438
+ - !ruby/object:Gem::Version
439
+ version: '0'
440
+ type: :development
441
+ prerelease: false
442
+ version_requirements: !ruby/object:Gem::Requirement
443
+ requirements:
444
+ - - ">="
445
+ - !ruby/object:Gem::Version
446
+ version: '0'
321
447
  description: A multithreaded, Postgres-based ActiveJob backend for Ruby on Rails
322
448
  email:
323
449
  - bensheldon@gmail.com
@@ -332,6 +458,22 @@ files:
332
458
  - CHANGELOG.md
333
459
  - LICENSE.txt
334
460
  - README.md
461
+ - engine/app/controllers/good_job/active_jobs_controller.rb
462
+ - engine/app/controllers/good_job/base_controller.rb
463
+ - engine/app/controllers/good_job/dashboards_controller.rb
464
+ - engine/app/helpers/good_job/application_helper.rb
465
+ - engine/app/views/assets/_style.css.erb
466
+ - engine/app/views/good_job/active_jobs/show.html.erb
467
+ - engine/app/views/good_job/dashboards/index.html.erb
468
+ - engine/app/views/layouts/good_job/base.html.erb
469
+ - engine/app/views/shared/_chart.erb
470
+ - engine/app/views/shared/_jobs_table.erb
471
+ - engine/app/views/vendor/bootstrap/_bootstrap-native.js.erb
472
+ - engine/app/views/vendor/bootstrap/_bootstrap.css.erb
473
+ - engine/app/views/vendor/chartist/_chartist.css.erb
474
+ - engine/app/views/vendor/chartist/_chartist.js.erb
475
+ - engine/config/routes.rb
476
+ - engine/lib/good_job/engine.rb
335
477
  - exe/good_job
336
478
  - lib/active_job/queue_adapters/good_job_adapter.rb
337
479
  - lib/generators/good_job/install_generator.rb
@@ -347,7 +489,7 @@ files:
347
489
  - lib/good_job/multi_scheduler.rb
348
490
  - lib/good_job/notifier.rb
349
491
  - lib/good_job/performer.rb
350
- - lib/good_job/pg_locks.rb
492
+ - lib/good_job/poller.rb
351
493
  - lib/good_job/railtie.rb
352
494
  - lib/good_job/scheduler.rb
353
495
  - lib/good_job/version.rb
@@ -371,18 +513,19 @@ rdoc_options:
371
513
  - "--quiet"
372
514
  require_paths:
373
515
  - lib
516
+ - engine/lib
374
517
  required_ruby_version: !ruby/object:Gem::Requirement
375
518
  requirements:
376
519
  - - ">="
377
520
  - !ruby/object:Gem::Version
378
- version: 2.4.0
521
+ version: 2.5.0
379
522
  required_rubygems_version: !ruby/object:Gem::Requirement
380
523
  requirements:
381
524
  - - ">="
382
525
  - !ruby/object:Gem::Version
383
526
  version: '0'
384
527
  requirements: []
385
- rubygems_version: 3.0.3
528
+ rubygems_version: 3.1.4
386
529
  signing_key:
387
530
  specification_version: 4
388
531
  summary: A multithreaded, Postgres-based ActiveJob backend for Ruby on Rails
@@ -1,21 +0,0 @@
1
- module GoodJob
2
- class PgLocks < ActiveRecord::Base
3
- self.table_name = 'pg_locks'.freeze
4
-
5
- # https://www.postgresql.org/docs/9.6/view-pg-locks.html
6
- # Advisory locks can be acquired on keys consisting of either a single bigint value or two integer values.
7
- # A bigint key is displayed with its high-order half in the classid column, its low-order half in the objid column, and objsubid equal to 1.
8
- # The original bigint value can be reassembled with the expression (classid::bigint << 32) | objid::bigint.
9
- # Integer keys are displayed with the first key in the classid column, the second key in the objid column, and objsubid equal to 2.
10
- # The actual meaning of the keys is up to the user. Advisory locks are local to each database, so the database column is meaningful for an advisory lock.
11
- def self.advisory_lock_details
12
- connection.select <<~SQL
13
- SELECT *
14
- FROM pg_locks
15
- WHERE
16
- locktype = 'advisory' AND
17
- objsubid = 1
18
- SQL
19
- end
20
- end
21
- end