rocketjob 5.4.0.beta2 → 6.0.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
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.