rocketjob 2.1.3 → 3.0.0.alpha
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 +36 -0
- data/lib/rocket_job/active_server.rb +48 -0
- data/lib/rocket_job/cli.rb +29 -17
- data/lib/rocket_job/config.rb +19 -31
- data/lib/rocket_job/dirmon_entry.rb +15 -45
- data/lib/rocket_job/extensions/mongo/logging.rb +26 -0
- data/lib/rocket_job/extensions/rocket_job_adapter.rb +3 -5
- data/lib/rocket_job/heartbeat.rb +18 -23
- data/lib/rocket_job/job.rb +0 -1
- data/lib/rocket_job/job_exception.rb +11 -13
- data/lib/rocket_job/jobs/dirmon_job.rb +8 -8
- data/lib/rocket_job/jobs/housekeeping_job.rb +13 -15
- data/lib/rocket_job/performance.rb +5 -5
- data/lib/rocket_job/plugins/cron.rb +3 -10
- data/lib/rocket_job/plugins/document.rb +58 -33
- data/lib/rocket_job/plugins/job/model.rb +43 -71
- data/lib/rocket_job/plugins/job/persistence.rb +7 -63
- data/lib/rocket_job/plugins/job/worker.rb +24 -26
- data/lib/rocket_job/plugins/processing_window.rb +6 -9
- data/lib/rocket_job/plugins/retry.rb +3 -8
- data/lib/rocket_job/plugins/singleton.rb +1 -1
- data/lib/rocket_job/plugins/state_machine.rb +1 -7
- data/lib/rocket_job/server.rb +352 -0
- data/lib/rocket_job/version.rb +1 -1
- data/lib/rocket_job/worker.rb +46 -336
- data/lib/rocketjob.rb +5 -4
- data/test/config/mongoid.yml +88 -0
- data/test/config_test.rb +1 -1
- data/test/dirmon_entry_test.rb +15 -79
- data/test/dirmon_job_test.rb +6 -6
- data/test/job_test.rb +2 -2
- data/test/plugins/job/callbacks_test.rb +40 -32
- data/test/plugins/job/defaults_test.rb +10 -8
- data/test/plugins/job/model_test.rb +1 -3
- data/test/plugins/job/persistence_test.rb +11 -13
- data/test/plugins/job/worker_test.rb +45 -26
- data/test/plugins/processing_window_test.rb +4 -4
- data/test/plugins/restart_test.rb +11 -12
- data/test/plugins/state_machine_event_callbacks_test.rb +20 -18
- data/test/plugins/state_machine_test.rb +5 -5
- data/test/test_helper.rb +4 -1
- metadata +15 -29
- data/lib/rocket_job/extensions/mongo.rb +0 -23
- data/lib/rocket_job/extensions/mongo_mapper.rb +0 -30
- data/lib/rocket_job/plugins/job/defaults.rb +0 -40
- data/test/config/mongo.yml +0 -46
@@ -8,8 +8,8 @@ module Plugins
|
|
8
8
|
include RocketJob::Plugins::Document
|
9
9
|
include RocketJob::Plugins::StateMachine
|
10
10
|
|
11
|
-
|
12
|
-
|
11
|
+
field :name, type: String
|
12
|
+
field :state, type: String
|
13
13
|
validates_presence_of :name, :state
|
14
14
|
|
15
15
|
aasm column: :state do
|
@@ -33,19 +33,19 @@ module Plugins
|
|
33
33
|
|
34
34
|
describe '#aasm_write_state' do
|
35
35
|
it 'raises an exception when a validation fails on create!' do
|
36
|
-
assert_raises
|
36
|
+
assert_raises Mongoid::Errors::Validations do
|
37
37
|
@doc = Test.create!
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
it 'raises an exception when a validation fails on save' do
|
42
|
-
assert_raises
|
42
|
+
assert_raises Mongoid::Errors::Validations do
|
43
43
|
@doc.save!
|
44
44
|
end
|
45
45
|
end
|
46
46
|
|
47
47
|
it 'raises an exception when a validation fails on state transition with save' do
|
48
|
-
assert_raises
|
48
|
+
assert_raises Mongoid::Errors::Validations do
|
49
49
|
@doc.enable!
|
50
50
|
end
|
51
51
|
assert @doc.pending?
|
data/test/test_helper.rb
CHANGED
@@ -17,4 +17,7 @@ MiniTest::Reporters.use! MiniTest::Reporters::SpecReporter.new
|
|
17
17
|
SemanticLogger.add_appender(file_name: 'test.log', formatter: :color)
|
18
18
|
SemanticLogger.default_level = :debug
|
19
19
|
|
20
|
-
RocketJob::Config.load!('test', 'test/config/
|
20
|
+
RocketJob::Config.load!('test', 'test/config/mongoid.yml')
|
21
|
+
Mongoid.logger = SemanticLogger[Mongoid]
|
22
|
+
|
23
|
+
#RocketJob::Job.collection.database.command(dropDatabase: 1)
|
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: 3.0.0.alpha
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Reid Morrison
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
@@ -25,45 +25,31 @@ dependencies:
|
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - "~>"
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '1.11'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - "~>"
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '1.11'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: mongo_mapper
|
28
|
+
name: mongoid
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
31
|
- - ">="
|
46
32
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
33
|
+
version: '5.0'
|
48
34
|
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
38
|
- - ">="
|
53
39
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
40
|
+
version: '5.0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: semantic_logger
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
|
-
- - "
|
45
|
+
- - ">="
|
60
46
|
- !ruby/object:Gem::Version
|
61
47
|
version: '3.1'
|
62
48
|
type: :runtime
|
63
49
|
prerelease: false
|
64
50
|
version_requirements: !ruby/object:Gem::Requirement
|
65
51
|
requirements:
|
66
|
-
- - "
|
52
|
+
- - ">="
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '3.1'
|
69
55
|
- !ruby/object:Gem::Dependency
|
@@ -94,12 +80,12 @@ files:
|
|
94
80
|
- Rakefile
|
95
81
|
- bin/rocketjob
|
96
82
|
- bin/rocketjob_perf
|
83
|
+
- lib/rocket_job/active_server.rb
|
97
84
|
- lib/rocket_job/cli.rb
|
98
85
|
- lib/rocket_job/config.rb
|
99
86
|
- lib/rocket_job/dirmon_entry.rb
|
100
87
|
- lib/rocket_job/extensions/aasm.rb
|
101
|
-
- lib/rocket_job/extensions/mongo.rb
|
102
|
-
- lib/rocket_job/extensions/mongo_mapper.rb
|
88
|
+
- lib/rocket_job/extensions/mongo/logging.rb
|
103
89
|
- lib/rocket_job/extensions/rocket_job_adapter.rb
|
104
90
|
- lib/rocket_job/heartbeat.rb
|
105
91
|
- lib/rocket_job/job.rb
|
@@ -111,7 +97,6 @@ files:
|
|
111
97
|
- lib/rocket_job/plugins/cron.rb
|
112
98
|
- lib/rocket_job/plugins/document.rb
|
113
99
|
- lib/rocket_job/plugins/job/callbacks.rb
|
114
|
-
- lib/rocket_job/plugins/job/defaults.rb
|
115
100
|
- lib/rocket_job/plugins/job/logger.rb
|
116
101
|
- lib/rocket_job/plugins/job/model.rb
|
117
102
|
- lib/rocket_job/plugins/job/persistence.rb
|
@@ -124,10 +109,11 @@ files:
|
|
124
109
|
- lib/rocket_job/plugins/rufus/zo_time.rb
|
125
110
|
- lib/rocket_job/plugins/singleton.rb
|
126
111
|
- lib/rocket_job/plugins/state_machine.rb
|
112
|
+
- lib/rocket_job/server.rb
|
127
113
|
- lib/rocket_job/version.rb
|
128
114
|
- lib/rocket_job/worker.rb
|
129
115
|
- lib/rocketjob.rb
|
130
|
-
- test/config/
|
116
|
+
- test/config/mongoid.yml
|
131
117
|
- test/config_test.rb
|
132
118
|
- test/dirmon_entry_test.rb
|
133
119
|
- test/dirmon_job_test.rb
|
@@ -159,12 +145,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
145
|
requirements:
|
160
146
|
- - ">="
|
161
147
|
- !ruby/object:Gem::Version
|
162
|
-
version: '
|
148
|
+
version: '2.1'
|
163
149
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
164
150
|
requirements:
|
165
|
-
- - "
|
151
|
+
- - ">"
|
166
152
|
- !ruby/object:Gem::Version
|
167
|
-
version:
|
153
|
+
version: 1.3.1
|
168
154
|
requirements: []
|
169
155
|
rubyforge_project:
|
170
156
|
rubygems_version: 2.5.1
|
@@ -172,7 +158,7 @@ signing_key:
|
|
172
158
|
specification_version: 4
|
173
159
|
summary: Ruby's missing batch system.
|
174
160
|
test_files:
|
175
|
-
- test/config/
|
161
|
+
- test/config/mongoid.yml
|
176
162
|
- test/config_test.rb
|
177
163
|
- test/dirmon_entry_test.rb
|
178
164
|
- test/dirmon_job_test.rb
|
@@ -1,23 +0,0 @@
|
|
1
|
-
require 'mongo'
|
2
|
-
|
3
|
-
Mongo::Logging
|
4
|
-
module Mongo
|
5
|
-
module Logging
|
6
|
-
|
7
|
-
# Remove annoying message on startup
|
8
|
-
def write_logging_startup_message
|
9
|
-
end
|
10
|
-
|
11
|
-
# Cleanup output
|
12
|
-
def log(level, msg)
|
13
|
-
MongoClient.logger.send(level, msg)
|
14
|
-
end
|
15
|
-
|
16
|
-
private
|
17
|
-
|
18
|
-
def log_operation(name, payload, duration)
|
19
|
-
MongoClient.logger.measure_trace(name, duration: (duration * 1000), payload: payload)
|
20
|
-
end
|
21
|
-
|
22
|
-
end
|
23
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# TODO Delete this file once PR has been accepted
|
2
|
-
# https://github.com/mongomapper/mongomapper/pull/641
|
3
|
-
MongoMapper::Plugins::Keys::Static
|
4
|
-
module MongoMapper
|
5
|
-
module Plugins
|
6
|
-
module Keys
|
7
|
-
module Static
|
8
|
-
module ClassMethods
|
9
|
-
def embedded_keys
|
10
|
-
@embedded_keys ||= embedded_associations.collect(&:as)
|
11
|
-
end
|
12
|
-
|
13
|
-
def embedded_key?(key)
|
14
|
-
embedded_keys.include?(key.to_sym)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def load_from_database(attrs, with_cast = false)
|
21
|
-
return super if !self.class.static_keys || !attrs.respond_to?(:each)
|
22
|
-
|
23
|
-
attrs = attrs.select { |key, _| self.class.key?(key) || self.class.embedded_key?(key) }
|
24
|
-
|
25
|
-
super(attrs, with_cast)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
require 'active_support/concern'
|
3
|
-
|
4
|
-
module RocketJob
|
5
|
-
module Plugins
|
6
|
-
module Job
|
7
|
-
# Allow each child job to set its own defaults
|
8
|
-
module Defaults
|
9
|
-
extend ActiveSupport::Concern
|
10
|
-
|
11
|
-
included do
|
12
|
-
# Copy parent job defaults
|
13
|
-
def self.inherited(base)
|
14
|
-
super
|
15
|
-
@rocket_job_defaults.each { |block| base.rocket_job(&block) } if @rocket_job_defaults
|
16
|
-
end
|
17
|
-
|
18
|
-
# Override parent defaults
|
19
|
-
def self.rocket_job(&block)
|
20
|
-
(@rocket_job_defaults ||=[]) << block
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def self.rocket_job_defaults
|
26
|
-
@rocket_job_defaults
|
27
|
-
end
|
28
|
-
|
29
|
-
# Apply defaults after creating the model but before applying values
|
30
|
-
def rocket_job_set_defaults
|
31
|
-
if defaults = self.class.rocket_job_defaults
|
32
|
-
defaults.each { |block| block.call(self) }
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
|
37
|
-
end
|
38
|
-
end
|
39
|
-
end
|
40
|
-
end
|
data/test/config/mongo.yml
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
# Some of these options are from mongo_ha
|
2
|
-
#
|
3
|
-
default_options: &default_options
|
4
|
-
:w: 1
|
5
|
-
:pool_size: 5
|
6
|
-
:pool_timeout: 5
|
7
|
-
:connect_timeout: 5
|
8
|
-
:reconnect_attempts: 53
|
9
|
-
:reconnect_retry_seconds: 0.1
|
10
|
-
:reconnect_retry_multiplier: 2
|
11
|
-
:reconnect_max_retry_seconds: 5
|
12
|
-
|
13
|
-
development:
|
14
|
-
uri: mongodb://localhost:27017/development_rocketjob
|
15
|
-
options:
|
16
|
-
<<: *default_options
|
17
|
-
|
18
|
-
development_work:
|
19
|
-
uri: mongodb://localhost:27017/development_rocketjob_work
|
20
|
-
options:
|
21
|
-
<<: *default_options
|
22
|
-
|
23
|
-
test:
|
24
|
-
uri: mongodb://localhost:27017/test_rocketjob
|
25
|
-
options:
|
26
|
-
<<: *default_options
|
27
|
-
|
28
|
-
test_work:
|
29
|
-
uri: mongodb://localhost:27017/test_rocketjob_work
|
30
|
-
options:
|
31
|
-
<<: *default_options
|
32
|
-
|
33
|
-
# Sample Production Settings
|
34
|
-
production:
|
35
|
-
uri: mongodb://mongo1.site.com:27017,mongo2.site.com:27017/production_rocketjob
|
36
|
-
options:
|
37
|
-
<<: *default_options
|
38
|
-
:pool_size: 50
|
39
|
-
:pool_timeout: 5
|
40
|
-
|
41
|
-
production_work:
|
42
|
-
uri: mongodb://mongo_local.site.com:27017/production_rocketjob_work
|
43
|
-
options:
|
44
|
-
<<: *default_options
|
45
|
-
:pool_size: 50
|
46
|
-
:pool_timeout: 5
|