rocketjob 5.3.3 → 6.0.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -5
  3. data/bin/rocketjob_batch_perf +1 -1
  4. data/bin/rocketjob_perf +1 -1
  5. data/lib/rocket_job/batch.rb +3 -0
  6. data/lib/rocket_job/batch/categories.rb +338 -0
  7. data/lib/rocket_job/batch/io.rb +132 -69
  8. data/lib/rocket_job/batch/model.rb +20 -68
  9. data/lib/rocket_job/batch/performance.rb +20 -8
  10. data/lib/rocket_job/batch/statistics.rb +35 -13
  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 +24 -16
  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/factory.rb +4 -12
  24. data/lib/rocket_job/extensions/mongoid/stringified_symbol.rb +50 -0
  25. data/lib/rocket_job/extensions/psych/yaml_tree.rb +8 -0
  26. data/lib/rocket_job/jobs/dirmon_job.rb +1 -1
  27. data/lib/rocket_job/jobs/housekeeping_job.rb +7 -7
  28. data/lib/rocket_job/jobs/on_demand_batch_job.rb +15 -6
  29. data/lib/rocket_job/jobs/on_demand_job.rb +1 -2
  30. data/lib/rocket_job/jobs/performance_job.rb +3 -1
  31. data/lib/rocket_job/jobs/re_encrypt/relational_job.rb +5 -4
  32. data/lib/rocket_job/jobs/upload_file_job.rb +47 -10
  33. data/lib/rocket_job/lookup_collection.rb +68 -0
  34. data/lib/rocket_job/plugins/job/model.rb +25 -50
  35. data/lib/rocket_job/plugins/job/throttle_running_jobs.rb +12 -4
  36. data/lib/rocket_job/plugins/job/worker.rb +2 -7
  37. data/lib/rocket_job/plugins/restart.rb +12 -5
  38. data/lib/rocket_job/plugins/state_machine.rb +2 -1
  39. data/lib/rocket_job/ractor_worker.rb +42 -0
  40. data/lib/rocket_job/server/model.rb +1 -1
  41. data/lib/rocket_job/sliced.rb +36 -0
  42. data/lib/rocket_job/sliced/bzip2_output_slice.rb +43 -0
  43. data/lib/rocket_job/sliced/input.rb +4 -4
  44. data/lib/rocket_job/sliced/slice.rb +11 -13
  45. data/lib/rocket_job/sliced/slices.rb +20 -2
  46. data/lib/rocket_job/sliced/writer/output.rb +33 -44
  47. data/lib/rocket_job/subscribers/server.rb +1 -1
  48. data/lib/rocket_job/thread_worker.rb +46 -0
  49. data/lib/rocket_job/version.rb +1 -1
  50. data/lib/rocket_job/worker.rb +21 -55
  51. data/lib/rocket_job/worker_pool.rb +5 -7
  52. data/lib/rocketjob.rb +52 -59
  53. metadata +43 -33
  54. data/lib/rocket_job/extensions/mongoid/remove_warnings.rb +0 -12
  55. 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,3 +1,3 @@
1
1
  module RocketJob
2
- VERSION = "5.3.3".freeze
2
+ VERSION = "6.0.0.rc1".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,27 +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 :Subscriber, "rocket_job/subscriber"
33
- autoload :Supervisor, "rocket_job/supervisor"
34
- autoload :ThrottleDefinition, "rocket_job/throttle_definition"
35
- autoload :ThrottleDefinitions, "rocket_job/throttle_definitions"
36
- 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
37
49
 
38
50
  module Plugins
39
51
  module Job
@@ -48,57 +60,38 @@ module RocketJob
48
60
  autoload :Transaction, "rocket_job/plugins/job/transaction"
49
61
  autoload :Worker, "rocket_job/plugins/job/worker"
50
62
  end
51
- module Rufus
52
- autoload :CronLine, "rocket_job/plugins/rufus/cron_line"
53
- autoload :ZoTime, "rocket_job/plugins/rufus/zo_time"
54
- end
55
- autoload :Cron, "rocket_job/plugins/cron"
56
- autoload :Document, "rocket_job/plugins/document"
57
- autoload :ProcessingWindow, "rocket_job/plugins/processing_window"
58
- autoload :Restart, "rocket_job/plugins/restart"
59
- autoload :Retry, "rocket_job/plugins/retry"
60
- autoload :Singleton, "rocket_job/plugins/singleton"
61
- autoload :StateMachine, "rocket_job/plugins/state_machine"
62
- 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"
63
71
  end
64
72
 
65
73
  module Jobs
66
- autoload :ActiveJob, "rocket_job/jobs/active_job"
67
- autoload :CopyFileJob, "rocket_job/jobs/copy_file_job"
68
- autoload :DirmonJob, "rocket_job/jobs/dirmon_job"
69
- autoload :OnDemandBatchJob, "rocket_job/jobs/on_demand_batch_job"
70
- autoload :OnDemandBatchTabularJob, "rocket_job/jobs/on_demand_batch_tabular_job"
71
- autoload :OnDemandJob, "rocket_job/jobs/on_demand_job"
72
- autoload :HousekeepingJob, "rocket_job/jobs/housekeeping_job"
73
- autoload :PerformanceJob, "rocket_job/jobs/performance_job"
74
- autoload :SimpleJob, "rocket_job/jobs/simple_job"
75
- autoload :UploadFileJob, "rocket_job/jobs/upload_file_job"
74
+ autoload :ActiveJob, "rocket_job/jobs/active_job"
75
+ autoload :CopyFileJob, "rocket_job/jobs/copy_file_job"
76
+ autoload :DirmonJob, "rocket_job/jobs/dirmon_job"
77
+ autoload :OnDemandBatchJob, "rocket_job/jobs/on_demand_batch_job"
78
+ autoload :OnDemandJob, "rocket_job/jobs/on_demand_job"
79
+ autoload :HousekeepingJob, "rocket_job/jobs/housekeeping_job"
80
+ autoload :PerformanceJob, "rocket_job/jobs/performance_job"
81
+ autoload :SimpleJob, "rocket_job/jobs/simple_job"
82
+ autoload :UploadFileJob, "rocket_job/jobs/upload_file_job"
83
+
76
84
  module ReEncrypt
77
85
  if defined?(ActiveRecord) && defined?(SyncAttr)
78
- autoload :RelationalJob, "rocket_job/jobs/re_encrypt/relational_job"
86
+ autoload :RelationalJob, "rocket_job/jobs/re_encrypt/relational_job"
79
87
  end
80
88
  end
81
89
  end
82
90
 
83
- module Sliced
84
- autoload :CompressedSlice, "rocket_job/sliced/compressed_slice"
85
- autoload :EncryptedSlice, "rocket_job/sliced/encrypted_slice"
86
- autoload :Input, "rocket_job/sliced/input"
87
- autoload :Output, "rocket_job/sliced/output"
88
- autoload :Slice, "rocket_job/sliced/slice"
89
- autoload :Slices, "rocket_job/sliced/slices"
90
- autoload :Store, "rocket_job/sliced/store"
91
-
92
- module Writer
93
- autoload :Input, "rocket_job/sliced/writer/input"
94
- autoload :Output, "rocket_job/sliced/writer/output"
95
- end
96
- end
97
-
98
91
  module Subscribers
99
- autoload :Logger, "rocket_job/subscribers/logger"
100
- autoload :Server, "rocket_job/subscribers/server"
101
- autoload :Worker, "rocket_job/subscribers/worker"
92
+ autoload :Logger, "rocket_job/subscribers/logger"
93
+ autoload :Server, "rocket_job/subscribers/server"
94
+ autoload :Worker, "rocket_job/subscribers/worker"
102
95
  end
103
96
  end
104
97
 
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.3.3
4
+ version: 6.0.0.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-07-16 00:00:00.000000000 Z
11
+ date: 2021-06-03 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,77 +39,77 @@ 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'
111
- description:
112
- email:
110
+ version: '4.3'
111
+ description:
112
+ email:
113
113
  executables:
114
114
  - rocketjob
115
115
  - rocketjob_perf
@@ -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,15 +141,20 @@ 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
@@ -158,12 +164,12 @@ files:
158
164
  - lib/rocket_job/jobs/dirmon_job.rb
159
165
  - lib/rocket_job/jobs/housekeeping_job.rb
160
166
  - lib/rocket_job/jobs/on_demand_batch_job.rb
161
- - lib/rocket_job/jobs/on_demand_batch_tabular_job.rb
162
167
  - lib/rocket_job/jobs/on_demand_job.rb
163
168
  - lib/rocket_job/jobs/performance_job.rb
164
169
  - lib/rocket_job/jobs/re_encrypt/relational_job.rb
165
170
  - lib/rocket_job/jobs/simple_job.rb
166
171
  - lib/rocket_job/jobs/upload_file_job.rb
172
+ - lib/rocket_job/lookup_collection.rb
167
173
  - lib/rocket_job/performance.rb
168
174
  - lib/rocket_job/plugins/cron.rb
169
175
  - lib/rocket_job/plugins/document.rb
@@ -181,11 +187,14 @@ files:
181
187
  - lib/rocket_job/plugins/singleton.rb
182
188
  - lib/rocket_job/plugins/state_machine.rb
183
189
  - lib/rocket_job/plugins/transaction.rb
190
+ - lib/rocket_job/ractor_worker.rb
184
191
  - lib/rocket_job/railtie.rb
185
192
  - lib/rocket_job/rocket_job.rb
186
193
  - lib/rocket_job/server.rb
187
194
  - lib/rocket_job/server/model.rb
188
195
  - lib/rocket_job/server/state_machine.rb
196
+ - lib/rocket_job/sliced.rb
197
+ - lib/rocket_job/sliced/bzip2_output_slice.rb
189
198
  - lib/rocket_job/sliced/compressed_slice.rb
190
199
  - lib/rocket_job/sliced/encrypted_slice.rb
191
200
  - lib/rocket_job/sliced/input.rb
@@ -200,17 +209,18 @@ files:
200
209
  - lib/rocket_job/subscribers/worker.rb
201
210
  - lib/rocket_job/supervisor.rb
202
211
  - lib/rocket_job/supervisor/shutdown.rb
212
+ - lib/rocket_job/thread_worker.rb
203
213
  - lib/rocket_job/throttle_definition.rb
204
214
  - lib/rocket_job/throttle_definitions.rb
205
215
  - lib/rocket_job/version.rb
206
216
  - lib/rocket_job/worker.rb
207
217
  - lib/rocket_job/worker_pool.rb
208
218
  - lib/rocketjob.rb
209
- homepage: http://rocketjob.io
219
+ homepage: https://rocketjob.io
210
220
  licenses:
211
221
  - Apache-2.0
212
222
  metadata: {}
213
- post_install_message:
223
+ post_install_message:
214
224
  rdoc_options: []
215
225
  require_paths:
216
226
  - lib
@@ -218,15 +228,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
218
228
  requirements:
219
229
  - - ">="
220
230
  - !ruby/object:Gem::Version
221
- version: '2.3'
231
+ version: '2.5'
222
232
  required_rubygems_version: !ruby/object:Gem::Requirement
223
233
  requirements:
224
- - - ">="
234
+ - - ">"
225
235
  - !ruby/object:Gem::Version
226
- version: '0'
236
+ version: 1.3.1
227
237
  requirements: []
228
- rubygems_version: 3.0.8
229
- signing_key:
238
+ rubygems_version: 3.2.15
239
+ signing_key:
230
240
  specification_version: 4
231
241
  summary: Ruby's missing batch processing system.
232
242
  test_files: []