rocketjob 5.4.0.beta2 → 6.0.0.rc3

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 (61) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +149 -5
  3. data/bin/rocketjob_batch_perf +1 -1
  4. data/bin/rocketjob_perf +1 -1
  5. data/lib/rocket_job/batch.rb +3 -1
  6. data/lib/rocket_job/batch/categories.rb +341 -0
  7. data/lib/rocket_job/batch/io.rb +128 -60
  8. data/lib/rocket_job/batch/model.rb +20 -68
  9. data/lib/rocket_job/batch/performance.rb +19 -7
  10. data/lib/rocket_job/batch/statistics.rb +34 -12
  11. data/lib/rocket_job/batch/tabular.rb +2 -0
  12. data/lib/rocket_job/batch/tabular/input.rb +8 -6
  13. data/lib/rocket_job/batch/tabular/output.rb +4 -2
  14. data/lib/rocket_job/batch/throttle_running_workers.rb +8 -17
  15. data/lib/rocket_job/batch/worker.rb +27 -24
  16. data/lib/rocket_job/category/base.rb +78 -0
  17. data/lib/rocket_job/category/input.rb +110 -0
  18. data/lib/rocket_job/category/output.rb +25 -0
  19. data/lib/rocket_job/cli.rb +25 -17
  20. data/lib/rocket_job/dirmon_entry.rb +22 -12
  21. data/lib/rocket_job/event.rb +1 -1
  22. data/lib/rocket_job/extensions/iostreams/path.rb +32 -0
  23. data/lib/rocket_job/extensions/mongoid/contextual/mongo.rb +2 -2
  24. data/lib/rocket_job/extensions/mongoid/factory.rb +4 -12
  25. data/lib/rocket_job/extensions/mongoid/stringified_symbol.rb +50 -0
  26. data/lib/rocket_job/extensions/psych/yaml_tree.rb +8 -0
  27. data/lib/rocket_job/extensions/rocket_job_adapter.rb +2 -2
  28. data/lib/rocket_job/jobs/conversion_job.rb +39 -0
  29. data/lib/rocket_job/jobs/dirmon_job.rb +2 -2
  30. data/lib/rocket_job/jobs/housekeeping_job.rb +7 -7
  31. data/lib/rocket_job/jobs/on_demand_batch_job.rb +17 -6
  32. data/lib/rocket_job/jobs/on_demand_job.rb +1 -2
  33. data/lib/rocket_job/jobs/performance_job.rb +3 -1
  34. data/lib/rocket_job/jobs/re_encrypt/relational_job.rb +103 -96
  35. data/lib/rocket_job/jobs/upload_file_job.rb +44 -8
  36. data/lib/rocket_job/lookup_collection.rb +69 -0
  37. data/lib/rocket_job/plugins/job/model.rb +25 -50
  38. data/lib/rocket_job/plugins/job/throttle.rb +2 -2
  39. data/lib/rocket_job/plugins/job/throttle_running_jobs.rb +12 -4
  40. data/lib/rocket_job/plugins/job/worker.rb +2 -7
  41. data/lib/rocket_job/plugins/restart.rb +12 -5
  42. data/lib/rocket_job/plugins/state_machine.rb +2 -1
  43. data/lib/rocket_job/plugins/throttle_dependent_jobs.rb +38 -0
  44. data/lib/rocket_job/ractor_worker.rb +42 -0
  45. data/lib/rocket_job/server/model.rb +1 -1
  46. data/lib/rocket_job/sliced.rb +15 -70
  47. data/lib/rocket_job/sliced/bzip2_output_slice.rb +1 -1
  48. data/lib/rocket_job/sliced/input.rb +1 -1
  49. data/lib/rocket_job/sliced/slice.rb +5 -13
  50. data/lib/rocket_job/sliced/slices.rb +14 -2
  51. data/lib/rocket_job/sliced/writer/output.rb +33 -45
  52. data/lib/rocket_job/subscribers/server.rb +1 -1
  53. data/lib/rocket_job/thread_worker.rb +46 -0
  54. data/lib/rocket_job/throttle_definitions.rb +7 -1
  55. data/lib/rocket_job/version.rb +1 -1
  56. data/lib/rocket_job/worker.rb +21 -55
  57. data/lib/rocket_job/worker_pool.rb +5 -7
  58. data/lib/rocketjob.rb +53 -43
  59. metadata +36 -26
  60. data/lib/rocket_job/extensions/mongoid/remove_warnings.rb +0 -12
  61. data/lib/rocket_job/jobs/on_demand_batch_tabular_job.rb +0 -28
@@ -17,7 +17,7 @@ module RocketJob
17
17
 
18
18
  supervisor.logger.info("Stopping Pool")
19
19
  supervisor.worker_pool.stop
20
- unless supervisor.worker_pool.living_count == 0
20
+ unless supervisor.worker_pool.living_count.zero?
21
21
  supervisor.logger.info("Giving pool #{wait_timeout} seconds to terminate")
22
22
  sleep(wait_timeout)
23
23
  end
@@ -0,0 +1,46 @@
1
+ require "concurrent"
2
+ module RocketJob
3
+ # ThreadWorker
4
+ #
5
+ # A worker runs on a single operating system thread.
6
+ # Is usually started under a Rocket Job server process.
7
+ class ThreadWorker < Worker
8
+ attr_reader :thread
9
+
10
+ def initialize(id:, server_name:)
11
+ super(id: id, server_name: server_name)
12
+ @shutdown = Concurrent::Event.new
13
+ @thread = Thread.new { run }
14
+ end
15
+
16
+ def alive?
17
+ @thread.alive?
18
+ end
19
+
20
+ def backtrace
21
+ @thread.backtrace
22
+ end
23
+
24
+ def join(*args)
25
+ @thread.join(*args)
26
+ end
27
+
28
+ # Send each active worker the RocketJob::ShutdownException so that stops processing immediately.
29
+ def kill
30
+ @thread.raise(Shutdown, "Shutdown due to kill request for worker: #{name}") if @thread.alive?
31
+ end
32
+
33
+ def shutdown?
34
+ @shutdown.set?
35
+ end
36
+
37
+ def shutdown!
38
+ @shutdown.set
39
+ end
40
+
41
+ # Returns [true|false] whether the shutdown indicator was set
42
+ def wait_for_shutdown?(timeout = nil)
43
+ @shutdown.wait(timeout)
44
+ end
45
+ end
46
+ end
@@ -1,6 +1,6 @@
1
1
  module RocketJob
2
2
  class ThrottleDefinitions
3
- attr_reader :throttles
3
+ attr_accessor :throttles
4
4
 
5
5
  def initialize
6
6
  @throttles = []
@@ -35,5 +35,11 @@ module RocketJob
35
35
  end
36
36
  nil
37
37
  end
38
+
39
+ def deep_dup
40
+ new_defination = dup
41
+ new_defination.throttles = throttles.map(&:dup)
42
+ new_defination
43
+ end
38
44
  end
39
45
  end
@@ -1,3 +1,3 @@
1
1
  module RocketJob
2
- VERSION = "5.4.0.beta2".freeze
2
+ VERSION = "6.0.0.rc3".freeze
3
3
  end
@@ -1,5 +1,3 @@
1
- require "concurrent"
2
- require "forwardable"
3
1
  module RocketJob
4
2
  # Worker
5
3
  #
@@ -7,12 +5,9 @@ module RocketJob
7
5
  # Is usually started under a Rocket Job server process.
8
6
  class Worker
9
7
  include SemanticLogger::Loggable
10
- include ActiveSupport::Callbacks
11
-
12
- define_callbacks :running
13
8
 
14
9
  attr_accessor :id, :current_filter
15
- attr_reader :thread, :name, :inline, :server_name
10
+ attr_reader :name, :server_name
16
11
 
17
12
  # Raised when a worker is killed so that it shutdown immediately, yet cleanly.
18
13
  #
@@ -21,59 +16,41 @@ module RocketJob
21
16
  class Shutdown < RuntimeError
22
17
  end
23
18
 
24
- def self.before_running(*filters, &blk)
25
- set_callback(:running, :before, *filters, &blk)
26
- end
27
-
28
- def self.after_running(*filters, &blk)
29
- set_callback(:running, :after, *filters, &blk)
30
- end
31
-
32
- def self.around_running(*filters, &blk)
33
- set_callback(:running, :around, *filters, &blk)
34
- end
35
-
36
- def initialize(id: 0, server_name: "inline:0", inline: false)
19
+ def initialize(id: 0, server_name: "inline:0")
37
20
  @id = id
38
21
  @server_name = server_name
39
- @shutdown = Concurrent::Event.new
40
22
  @name = "#{server_name}:#{id}"
41
23
  @re_check_start = Time.now
42
24
  @current_filter = Config.filter || {}
43
- @thread = Thread.new { run } unless inline
44
- @inline = inline
45
25
  end
46
26
 
47
27
  def alive?
48
- inline ? true : @thread.alive?
28
+ true
49
29
  end
50
30
 
51
31
  def backtrace
52
- inline ? Thread.current.backtrace : @thread.backtrace
32
+ Thread.current.backtrace
53
33
  end
54
34
 
55
- def join(*args)
56
- @thread.join(*args) unless inline
35
+ def join(*_args)
36
+ true
57
37
  end
58
38
 
59
- # Send each active worker the RocketJob::ShutdownException so that stops processing immediately.
60
39
  def kill
61
- return true if inline
62
-
63
- @thread.raise(Shutdown, "Shutdown due to kill request for worker: #{name}") if @thread.alive?
40
+ true
64
41
  end
65
42
 
66
43
  def shutdown?
67
- @shutdown.set?
44
+ false
68
45
  end
69
46
 
70
47
  def shutdown!
71
- @shutdown.set
48
+ true
72
49
  end
73
50
 
74
51
  # Returns [true|false] whether the shutdown indicator was set
75
- def wait_for_shutdown?(timeout = nil)
76
- @shutdown.wait(timeout)
52
+ def wait_for_shutdown?(_timeout = nil)
53
+ false
77
54
  end
78
55
 
79
56
  # Process jobs until it shuts down
@@ -146,6 +123,8 @@ module RocketJob
146
123
 
147
124
  # Should this job be throttled?
148
125
  next if job.fail_on_exception! { throttled_job?(job) }
126
+ # Job failed during throttle execution?
127
+ next if job.failed?
149
128
 
150
129
  # Start this job!
151
130
  job.fail_on_exception! { job.start!(name) }
@@ -171,27 +150,14 @@ module RocketJob
171
150
  # Applies the current filter to exclude filtered jobs.
172
151
  #
173
152
  # Returns nil if no jobs are available for processing.
174
- if Mongoid::VERSION.to_f >= 7.1
175
- def find_and_assign_job
176
- SemanticLogger.silence(:info) do
177
- scheduled = RocketJob::Job.where(run_at: nil).or(:run_at.lte => Time.now)
178
- working = RocketJob::Job.queued.or(state: :running, sub_state: :processing)
179
- query = RocketJob::Job.and(working, scheduled)
180
- query = query.and(current_filter) unless current_filter.blank?
181
- update = {"$set" => {"worker_name" => name, "state" => "running"}}
182
- query.sort(priority: 1, _id: 1).find_one_and_update(update, bypass_document_validation: true)
183
- end
184
- end
185
- else
186
- def find_and_assign_job
187
- SemanticLogger.silence(:info) do
188
- scheduled = {"$or" => [{run_at: nil}, {:run_at.lte => Time.now}]}
189
- working = {"$or" => [{state: :queued}, {state: :running, sub_state: :processing}]}
190
- query = RocketJob::Job.and(working, scheduled)
191
- query = query.where(current_filter) unless current_filter.blank?
192
- update = {"$set" => {"worker_name" => name, "state" => "running"}}
193
- query.sort(priority: 1, _id: 1).find_one_and_update(update, bypass_document_validation: true)
194
- end
153
+ def find_and_assign_job
154
+ SemanticLogger.silence(:info) do
155
+ scheduled = RocketJob::Job.where(run_at: nil).or(:run_at.lte => Time.now)
156
+ working = RocketJob::Job.queued.or(state: "running", sub_state: "processing")
157
+ query = RocketJob::Job.and(working, scheduled)
158
+ query = query.and(current_filter) unless current_filter.blank?
159
+ update = {"$set" => {"worker_name" => name, "state" => "running"}}
160
+ query.sort(priority: 1, _id: 1).find_one_and_update(update, bypass_document_validation: true)
195
161
  end
196
162
  end
197
163
 
@@ -69,12 +69,10 @@ module RocketJob
69
69
  # Return [false] on timeout
70
70
  def join(timeout = 5)
71
71
  while (worker = workers.first)
72
- if worker.join(timeout)
73
- # Worker thread is dead
74
- workers.shift
75
- else
76
- return false
77
- end
72
+ return false unless worker.join(timeout)
73
+
74
+ # Worker thread is dead
75
+ workers.shift
78
76
  end
79
77
  true
80
78
  end
@@ -91,7 +89,7 @@ module RocketJob
91
89
  private
92
90
 
93
91
  def add_one
94
- workers << Worker.new(id: next_worker_id, server_name: server_name)
92
+ workers << ThreadWorker.new(id: next_worker_id, server_name: server_name)
95
93
  rescue StandardError => e
96
94
  logger.fatal("Cannot start worker", e)
97
95
  end
data/lib/rocketjob.rb CHANGED
@@ -3,6 +3,8 @@ require "semantic_logger"
3
3
  require "symmetric-encryption"
4
4
  require "mongoid"
5
5
  require "rocket_job/extensions/mongo/logging"
6
+ require "rocket_job/extensions/iostreams/path"
7
+ require "rocket_job/extensions/psych/yaml_tree"
6
8
  require "rocket_job/version"
7
9
  require "rocket_job/rocket_job"
8
10
  require "rocket_job/config"
@@ -13,28 +15,37 @@ require "rocket_job/extensions/mongoid/clients/options"
13
15
  require "rocket_job/extensions/mongoid/contextual/mongo"
14
16
  require "rocket_job/extensions/mongoid/factory"
15
17
 
16
- # Apply patches for deprecated Symbol type
17
- require "rocket_job/extensions/mongoid/remove_warnings"
18
+ # Backport New StringifiedSymbol type in Mongoid v7.2
19
+ require "rocket_job/extensions/mongoid/stringified_symbol" unless defined?(Mongoid::StringifiedSymbol)
18
20
 
19
21
  # @formatter:off
20
22
  module RocketJob
21
- autoload :ActiveWorker, "rocket_job/active_worker"
22
- autoload :Batch, "rocket_job/batch"
23
- autoload :CLI, "rocket_job/cli"
24
- autoload :DirmonEntry, "rocket_job/dirmon_entry"
25
- autoload :Event, "rocket_job/event"
26
- autoload :Heartbeat, "rocket_job/heartbeat"
27
- autoload :Job, "rocket_job/job"
28
- autoload :JobException, "rocket_job/job_exception"
29
- autoload :Worker, "rocket_job/worker"
30
- autoload :Performance, "rocket_job/performance"
31
- autoload :Server, "rocket_job/server"
32
- autoload :Sliced, "rocket_job/sliced"
33
- autoload :Subscriber, "rocket_job/subscriber"
34
- autoload :Supervisor, "rocket_job/supervisor"
35
- autoload :ThrottleDefinition, "rocket_job/throttle_definition"
36
- autoload :ThrottleDefinitions, "rocket_job/throttle_definitions"
37
- autoload :WorkerPool, "rocket_job/worker_pool"
23
+ autoload :ActiveWorker, "rocket_job/active_worker"
24
+ autoload :Batch, "rocket_job/batch"
25
+ autoload :CLI, "rocket_job/cli"
26
+ autoload :DirmonEntry, "rocket_job/dirmon_entry"
27
+ autoload :Event, "rocket_job/event"
28
+ autoload :Heartbeat, "rocket_job/heartbeat"
29
+ autoload :Job, "rocket_job/job"
30
+ autoload :JobException, "rocket_job/job_exception"
31
+ autoload :LookupCollection, "rocket_job/lookup_collection"
32
+ autoload :Worker, "rocket_job/worker"
33
+ autoload :Performance, "rocket_job/performance"
34
+ autoload :RactorWorker, "rocket_job/ractor_worker"
35
+ autoload :Server, "rocket_job/server"
36
+ autoload :Sliced, "rocket_job/sliced"
37
+ autoload :Subscriber, "rocket_job/subscriber"
38
+ autoload :Supervisor, "rocket_job/supervisor"
39
+ autoload :ThreadWorker, "rocket_job/thread_worker"
40
+ autoload :ThrottleDefinition, "rocket_job/throttle_definition"
41
+ autoload :ThrottleDefinitions, "rocket_job/throttle_definitions"
42
+ autoload :WorkerPool, "rocket_job/worker_pool"
43
+
44
+ module Category
45
+ autoload :Base, "rocket_job/category/base"
46
+ autoload :Input, "rocket_job/category/input"
47
+ autoload :Output, "rocket_job/category/output"
48
+ end
38
49
 
39
50
  module Plugins
40
51
  module Job
@@ -49,38 +60,37 @@ module RocketJob
49
60
  autoload :Transaction, "rocket_job/plugins/job/transaction"
50
61
  autoload :Worker, "rocket_job/plugins/job/worker"
51
62
  end
52
- autoload :Cron, "rocket_job/plugins/cron"
53
- autoload :Document, "rocket_job/plugins/document"
54
- autoload :ProcessingWindow, "rocket_job/plugins/processing_window"
55
- autoload :Restart, "rocket_job/plugins/restart"
56
- autoload :Retry, "rocket_job/plugins/retry"
57
- autoload :Singleton, "rocket_job/plugins/singleton"
58
- autoload :StateMachine, "rocket_job/plugins/state_machine"
59
- autoload :Transaction, "rocket_job/plugins/transaction"
63
+ autoload :Cron, "rocket_job/plugins/cron"
64
+ autoload :Document, "rocket_job/plugins/document"
65
+ autoload :ProcessingWindow, "rocket_job/plugins/processing_window"
66
+ autoload :Restart, "rocket_job/plugins/restart"
67
+ autoload :Retry, "rocket_job/plugins/retry"
68
+ autoload :Singleton, "rocket_job/plugins/singleton"
69
+ autoload :StateMachine, "rocket_job/plugins/state_machine"
70
+ autoload :Transaction, "rocket_job/plugins/transaction"
71
+ autoload :ThrottleDependentJobs, "rocket_job/plugins/throttle_dependent_jobs"
60
72
  end
61
73
 
62
74
  module Jobs
63
- autoload :ActiveJob, "rocket_job/jobs/active_job"
64
- autoload :CopyFileJob, "rocket_job/jobs/copy_file_job"
65
- autoload :DirmonJob, "rocket_job/jobs/dirmon_job"
66
- autoload :OnDemandBatchJob, "rocket_job/jobs/on_demand_batch_job"
67
- autoload :OnDemandBatchTabularJob, "rocket_job/jobs/on_demand_batch_tabular_job"
68
- autoload :OnDemandJob, "rocket_job/jobs/on_demand_job"
69
- autoload :HousekeepingJob, "rocket_job/jobs/housekeeping_job"
70
- autoload :PerformanceJob, "rocket_job/jobs/performance_job"
71
- autoload :SimpleJob, "rocket_job/jobs/simple_job"
72
- autoload :UploadFileJob, "rocket_job/jobs/upload_file_job"
75
+ autoload :ActiveJob, "rocket_job/jobs/active_job"
76
+ autoload :CopyFileJob, "rocket_job/jobs/copy_file_job"
77
+ autoload :DirmonJob, "rocket_job/jobs/dirmon_job"
78
+ autoload :OnDemandBatchJob, "rocket_job/jobs/on_demand_batch_job"
79
+ autoload :OnDemandJob, "rocket_job/jobs/on_demand_job"
80
+ autoload :HousekeepingJob, "rocket_job/jobs/housekeeping_job"
81
+ autoload :PerformanceJob, "rocket_job/jobs/performance_job"
82
+ autoload :SimpleJob, "rocket_job/jobs/simple_job"
83
+ autoload :UploadFileJob, "rocket_job/jobs/upload_file_job"
84
+
73
85
  module ReEncrypt
74
- if defined?(ActiveRecord) && defined?(SyncAttr)
75
- autoload :RelationalJob, "rocket_job/jobs/re_encrypt/relational_job"
76
- end
86
+ autoload :RelationalJob, "rocket_job/jobs/re_encrypt/relational_job"
77
87
  end
78
88
  end
79
89
 
80
90
  module Subscribers
81
- autoload :Logger, "rocket_job/subscribers/logger"
82
- autoload :Server, "rocket_job/subscribers/server"
83
- autoload :Worker, "rocket_job/subscribers/worker"
91
+ autoload :Logger, "rocket_job/subscribers/logger"
92
+ autoload :Server, "rocket_job/subscribers/server"
93
+ autoload :Worker, "rocket_job/subscribers/worker"
84
94
  end
85
95
  end
86
96
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketjob
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.4.0.beta2
4
+ version: 6.0.0.rc3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-23 00:00:00.000000000 Z
11
+ date: 2021-06-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aasm
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '4.12'
19
+ version: '5.1'
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: '4.12'
26
+ version: '5.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: concurrent-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -39,75 +39,75 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.1'
41
41
  - !ruby/object:Gem::Dependency
42
- name: iostreams
42
+ name: fugit
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.2'
47
+ version: '1.4'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.2'
54
+ version: '1.4'
55
55
  - !ruby/object:Gem::Dependency
56
- name: mongoid
56
+ name: iostreams
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '7.0'
61
+ version: '1.6'
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '7.0'
68
+ version: '1.6'
69
69
  - !ruby/object:Gem::Dependency
70
- name: semantic_logger
70
+ name: mongoid
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '4.1'
75
+ version: '7.1'
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: '4.1'
82
+ version: '7.1'
83
83
  - !ruby/object:Gem::Dependency
84
- name: symmetric-encryption
84
+ name: semantic_logger
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ">="
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: '4.0'
89
+ version: '4.7'
90
90
  type: :runtime
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ">="
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '4.0'
96
+ version: '4.7'
97
97
  - !ruby/object:Gem::Dependency
98
- name: fugit
98
+ name: symmetric-encryption
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
101
  - - "~>"
102
102
  - !ruby/object:Gem::Version
103
- version: '1.3'
103
+ version: '4.3'
104
104
  type: :runtime
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - "~>"
109
109
  - !ruby/object:Gem::Version
110
- version: '1.3'
110
+ version: '4.3'
111
111
  description:
112
112
  email:
113
113
  executables:
@@ -124,6 +124,7 @@ files:
124
124
  - lib/rocket_job/active_worker.rb
125
125
  - lib/rocket_job/batch.rb
126
126
  - lib/rocket_job/batch/callbacks.rb
127
+ - lib/rocket_job/batch/categories.rb
127
128
  - lib/rocket_job/batch/io.rb
128
129
  - lib/rocket_job/batch/logger.rb
129
130
  - lib/rocket_job/batch/lower_priority.rb
@@ -140,30 +141,36 @@ files:
140
141
  - lib/rocket_job/batch/throttle_running_workers.rb
141
142
  - lib/rocket_job/batch/throttle_windows.rb
142
143
  - lib/rocket_job/batch/worker.rb
144
+ - lib/rocket_job/category/base.rb
145
+ - lib/rocket_job/category/input.rb
146
+ - lib/rocket_job/category/output.rb
143
147
  - lib/rocket_job/cli.rb
144
148
  - lib/rocket_job/config.rb
145
149
  - lib/rocket_job/dirmon_entry.rb
146
150
  - lib/rocket_job/event.rb
151
+ - lib/rocket_job/extensions/iostreams/path.rb
147
152
  - lib/rocket_job/extensions/mongo/logging.rb
148
153
  - lib/rocket_job/extensions/mongoid/clients/options.rb
149
154
  - lib/rocket_job/extensions/mongoid/contextual/mongo.rb
150
155
  - lib/rocket_job/extensions/mongoid/factory.rb
151
- - lib/rocket_job/extensions/mongoid/remove_warnings.rb
156
+ - lib/rocket_job/extensions/mongoid/stringified_symbol.rb
157
+ - lib/rocket_job/extensions/psych/yaml_tree.rb
152
158
  - lib/rocket_job/extensions/rocket_job_adapter.rb
153
159
  - lib/rocket_job/heartbeat.rb
154
160
  - lib/rocket_job/job.rb
155
161
  - lib/rocket_job/job_exception.rb
156
162
  - lib/rocket_job/jobs/active_job.rb
163
+ - lib/rocket_job/jobs/conversion_job.rb
157
164
  - lib/rocket_job/jobs/copy_file_job.rb
158
165
  - lib/rocket_job/jobs/dirmon_job.rb
159
166
  - lib/rocket_job/jobs/housekeeping_job.rb
160
167
  - lib/rocket_job/jobs/on_demand_batch_job.rb
161
- - lib/rocket_job/jobs/on_demand_batch_tabular_job.rb
162
168
  - lib/rocket_job/jobs/on_demand_job.rb
163
169
  - lib/rocket_job/jobs/performance_job.rb
164
170
  - lib/rocket_job/jobs/re_encrypt/relational_job.rb
165
171
  - lib/rocket_job/jobs/simple_job.rb
166
172
  - lib/rocket_job/jobs/upload_file_job.rb
173
+ - lib/rocket_job/lookup_collection.rb
167
174
  - lib/rocket_job/performance.rb
168
175
  - lib/rocket_job/plugins/cron.rb
169
176
  - lib/rocket_job/plugins/document.rb
@@ -180,7 +187,9 @@ files:
180
187
  - lib/rocket_job/plugins/retry.rb
181
188
  - lib/rocket_job/plugins/singleton.rb
182
189
  - lib/rocket_job/plugins/state_machine.rb
190
+ - lib/rocket_job/plugins/throttle_dependent_jobs.rb
183
191
  - lib/rocket_job/plugins/transaction.rb
192
+ - lib/rocket_job/ractor_worker.rb
184
193
  - lib/rocket_job/railtie.rb
185
194
  - lib/rocket_job/rocket_job.rb
186
195
  - lib/rocket_job/server.rb
@@ -202,13 +211,14 @@ files:
202
211
  - lib/rocket_job/subscribers/worker.rb
203
212
  - lib/rocket_job/supervisor.rb
204
213
  - lib/rocket_job/supervisor/shutdown.rb
214
+ - lib/rocket_job/thread_worker.rb
205
215
  - lib/rocket_job/throttle_definition.rb
206
216
  - lib/rocket_job/throttle_definitions.rb
207
217
  - lib/rocket_job/version.rb
208
218
  - lib/rocket_job/worker.rb
209
219
  - lib/rocket_job/worker_pool.rb
210
220
  - lib/rocketjob.rb
211
- homepage: http://rocketjob.io
221
+ homepage: https://rocketjob.io
212
222
  licenses:
213
223
  - Apache-2.0
214
224
  metadata: {}
@@ -220,14 +230,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
220
230
  requirements:
221
231
  - - ">="
222
232
  - !ruby/object:Gem::Version
223
- version: '2.3'
233
+ version: '2.5'
224
234
  required_rubygems_version: !ruby/object:Gem::Requirement
225
235
  requirements:
226
236
  - - ">"
227
237
  - !ruby/object:Gem::Version
228
238
  version: 1.3.1
229
239
  requirements: []
230
- rubygems_version: 3.0.8
240
+ rubygems_version: 3.2.15
231
241
  signing_key:
232
242
  specification_version: 4
233
243
  summary: Ruby's missing batch processing system.