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.
- checksums.yaml +4 -4
- data/README.md +149 -5
- data/bin/rocketjob_batch_perf +1 -1
- data/bin/rocketjob_perf +1 -1
- data/lib/rocket_job/batch.rb +3 -1
- data/lib/rocket_job/batch/categories.rb +341 -0
- data/lib/rocket_job/batch/io.rb +128 -60
- data/lib/rocket_job/batch/model.rb +20 -68
- data/lib/rocket_job/batch/performance.rb +19 -7
- data/lib/rocket_job/batch/statistics.rb +34 -12
- data/lib/rocket_job/batch/tabular.rb +2 -0
- data/lib/rocket_job/batch/tabular/input.rb +8 -6
- data/lib/rocket_job/batch/tabular/output.rb +4 -2
- data/lib/rocket_job/batch/throttle_running_workers.rb +8 -17
- data/lib/rocket_job/batch/worker.rb +27 -24
- data/lib/rocket_job/category/base.rb +78 -0
- data/lib/rocket_job/category/input.rb +110 -0
- data/lib/rocket_job/category/output.rb +25 -0
- data/lib/rocket_job/cli.rb +25 -17
- data/lib/rocket_job/dirmon_entry.rb +22 -12
- data/lib/rocket_job/event.rb +1 -1
- data/lib/rocket_job/extensions/iostreams/path.rb +32 -0
- data/lib/rocket_job/extensions/mongoid/contextual/mongo.rb +2 -2
- data/lib/rocket_job/extensions/mongoid/factory.rb +4 -12
- data/lib/rocket_job/extensions/mongoid/stringified_symbol.rb +50 -0
- data/lib/rocket_job/extensions/psych/yaml_tree.rb +8 -0
- data/lib/rocket_job/extensions/rocket_job_adapter.rb +2 -2
- data/lib/rocket_job/jobs/conversion_job.rb +39 -0
- data/lib/rocket_job/jobs/dirmon_job.rb +2 -2
- data/lib/rocket_job/jobs/housekeeping_job.rb +7 -7
- data/lib/rocket_job/jobs/on_demand_batch_job.rb +17 -6
- data/lib/rocket_job/jobs/on_demand_job.rb +1 -2
- data/lib/rocket_job/jobs/performance_job.rb +3 -1
- data/lib/rocket_job/jobs/re_encrypt/relational_job.rb +103 -96
- data/lib/rocket_job/jobs/upload_file_job.rb +44 -8
- data/lib/rocket_job/lookup_collection.rb +69 -0
- data/lib/rocket_job/plugins/job/model.rb +25 -50
- data/lib/rocket_job/plugins/job/throttle.rb +2 -2
- data/lib/rocket_job/plugins/job/throttle_running_jobs.rb +12 -4
- data/lib/rocket_job/plugins/job/worker.rb +2 -7
- data/lib/rocket_job/plugins/restart.rb +12 -5
- data/lib/rocket_job/plugins/state_machine.rb +2 -1
- data/lib/rocket_job/plugins/throttle_dependent_jobs.rb +38 -0
- data/lib/rocket_job/ractor_worker.rb +42 -0
- data/lib/rocket_job/server/model.rb +1 -1
- data/lib/rocket_job/sliced.rb +15 -70
- data/lib/rocket_job/sliced/bzip2_output_slice.rb +1 -1
- data/lib/rocket_job/sliced/input.rb +1 -1
- data/lib/rocket_job/sliced/slice.rb +5 -13
- data/lib/rocket_job/sliced/slices.rb +14 -2
- data/lib/rocket_job/sliced/writer/output.rb +33 -45
- data/lib/rocket_job/subscribers/server.rb +1 -1
- data/lib/rocket_job/thread_worker.rb +46 -0
- data/lib/rocket_job/throttle_definitions.rb +7 -1
- data/lib/rocket_job/version.rb +1 -1
- data/lib/rocket_job/worker.rb +21 -55
- data/lib/rocket_job/worker_pool.rb +5 -7
- data/lib/rocketjob.rb +53 -43
- metadata +36 -26
- data/lib/rocket_job/extensions/mongoid/remove_warnings.rb +0 -12
- 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
|
|
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
|
-
|
|
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
|
data/lib/rocket_job/version.rb
CHANGED
data/lib/rocket_job/worker.rb
CHANGED
|
@@ -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 :
|
|
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
|
|
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
|
-
|
|
28
|
+
true
|
|
49
29
|
end
|
|
50
30
|
|
|
51
31
|
def backtrace
|
|
52
|
-
|
|
32
|
+
Thread.current.backtrace
|
|
53
33
|
end
|
|
54
34
|
|
|
55
|
-
def join(*
|
|
56
|
-
|
|
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
|
-
|
|
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
|
-
|
|
44
|
+
false
|
|
68
45
|
end
|
|
69
46
|
|
|
70
47
|
def shutdown!
|
|
71
|
-
|
|
48
|
+
true
|
|
72
49
|
end
|
|
73
50
|
|
|
74
51
|
# Returns [true|false] whether the shutdown indicator was set
|
|
75
|
-
def wait_for_shutdown?(
|
|
76
|
-
|
|
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
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
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
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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 <<
|
|
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
|
-
#
|
|
17
|
-
require "rocket_job/extensions/mongoid/
|
|
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,
|
|
22
|
-
autoload :Batch,
|
|
23
|
-
autoload :CLI,
|
|
24
|
-
autoload :DirmonEntry,
|
|
25
|
-
autoload :Event,
|
|
26
|
-
autoload :Heartbeat,
|
|
27
|
-
autoload :Job,
|
|
28
|
-
autoload :JobException,
|
|
29
|
-
autoload :
|
|
30
|
-
autoload :
|
|
31
|
-
autoload :
|
|
32
|
-
autoload :
|
|
33
|
-
autoload :
|
|
34
|
-
autoload :
|
|
35
|
-
autoload :
|
|
36
|
-
autoload :
|
|
37
|
-
autoload :
|
|
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,
|
|
53
|
-
autoload :Document,
|
|
54
|
-
autoload :ProcessingWindow,
|
|
55
|
-
autoload :Restart,
|
|
56
|
-
autoload :Retry,
|
|
57
|
-
autoload :Singleton,
|
|
58
|
-
autoload :StateMachine,
|
|
59
|
-
autoload :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,
|
|
64
|
-
autoload :CopyFileJob,
|
|
65
|
-
autoload :DirmonJob,
|
|
66
|
-
autoload :OnDemandBatchJob,
|
|
67
|
-
autoload :
|
|
68
|
-
autoload :
|
|
69
|
-
autoload :
|
|
70
|
-
autoload :
|
|
71
|
-
autoload :
|
|
72
|
-
|
|
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
|
-
|
|
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,
|
|
82
|
-
autoload :Server,
|
|
83
|
-
autoload :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:
|
|
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:
|
|
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: '
|
|
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: '
|
|
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:
|
|
42
|
+
name: fugit
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
44
44
|
requirements:
|
|
45
45
|
- - "~>"
|
|
46
46
|
- !ruby/object:Gem::Version
|
|
47
|
-
version: '1.
|
|
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.
|
|
54
|
+
version: '1.4'
|
|
55
55
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
56
|
+
name: iostreams
|
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
|
58
58
|
requirements:
|
|
59
59
|
- - "~>"
|
|
60
60
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
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: '
|
|
68
|
+
version: '1.6'
|
|
69
69
|
- !ruby/object:Gem::Dependency
|
|
70
|
-
name:
|
|
70
|
+
name: mongoid
|
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '
|
|
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: '
|
|
82
|
+
version: '7.1'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
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.
|
|
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.
|
|
96
|
+
version: '4.7'
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
98
|
+
name: symmetric-encryption
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - "~>"
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version: '
|
|
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: '
|
|
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/
|
|
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:
|
|
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.
|
|
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.
|
|
240
|
+
rubygems_version: 3.2.15
|
|
231
241
|
signing_key:
|
|
232
242
|
specification_version: 4
|
|
233
243
|
summary: Ruby's missing batch processing system.
|