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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +36 -0
  3. data/lib/rocket_job/active_server.rb +48 -0
  4. data/lib/rocket_job/cli.rb +29 -17
  5. data/lib/rocket_job/config.rb +19 -31
  6. data/lib/rocket_job/dirmon_entry.rb +15 -45
  7. data/lib/rocket_job/extensions/mongo/logging.rb +26 -0
  8. data/lib/rocket_job/extensions/rocket_job_adapter.rb +3 -5
  9. data/lib/rocket_job/heartbeat.rb +18 -23
  10. data/lib/rocket_job/job.rb +0 -1
  11. data/lib/rocket_job/job_exception.rb +11 -13
  12. data/lib/rocket_job/jobs/dirmon_job.rb +8 -8
  13. data/lib/rocket_job/jobs/housekeeping_job.rb +13 -15
  14. data/lib/rocket_job/performance.rb +5 -5
  15. data/lib/rocket_job/plugins/cron.rb +3 -10
  16. data/lib/rocket_job/plugins/document.rb +58 -33
  17. data/lib/rocket_job/plugins/job/model.rb +43 -71
  18. data/lib/rocket_job/plugins/job/persistence.rb +7 -63
  19. data/lib/rocket_job/plugins/job/worker.rb +24 -26
  20. data/lib/rocket_job/plugins/processing_window.rb +6 -9
  21. data/lib/rocket_job/plugins/retry.rb +3 -8
  22. data/lib/rocket_job/plugins/singleton.rb +1 -1
  23. data/lib/rocket_job/plugins/state_machine.rb +1 -7
  24. data/lib/rocket_job/server.rb +352 -0
  25. data/lib/rocket_job/version.rb +1 -1
  26. data/lib/rocket_job/worker.rb +46 -336
  27. data/lib/rocketjob.rb +5 -4
  28. data/test/config/mongoid.yml +88 -0
  29. data/test/config_test.rb +1 -1
  30. data/test/dirmon_entry_test.rb +15 -79
  31. data/test/dirmon_job_test.rb +6 -6
  32. data/test/job_test.rb +2 -2
  33. data/test/plugins/job/callbacks_test.rb +40 -32
  34. data/test/plugins/job/defaults_test.rb +10 -8
  35. data/test/plugins/job/model_test.rb +1 -3
  36. data/test/plugins/job/persistence_test.rb +11 -13
  37. data/test/plugins/job/worker_test.rb +45 -26
  38. data/test/plugins/processing_window_test.rb +4 -4
  39. data/test/plugins/restart_test.rb +11 -12
  40. data/test/plugins/state_machine_event_callbacks_test.rb +20 -18
  41. data/test/plugins/state_machine_test.rb +5 -5
  42. data/test/test_helper.rb +4 -1
  43. metadata +15 -29
  44. data/lib/rocket_job/extensions/mongo.rb +0 -23
  45. data/lib/rocket_job/extensions/mongo_mapper.rb +0 -30
  46. data/lib/rocket_job/plugins/job/defaults.rb +0 -40
  47. 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
- key :name
12
- key :state
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 MongoMapper::DocumentNotValid do
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 MongoMapper::DocumentNotValid do
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 MongoMapper::DocumentNotValid do
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/mongo.yml')
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: 2.1.3
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-08-01 00:00:00.000000000 Z
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: mongo_ha
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: 0.14.0.rc1
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: 0.14.0.rc1
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/mongo.yml
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: '0'
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: '0'
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/mongo.yml
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
@@ -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