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.
- 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.
|