rocketjob 3.4.3 → 3.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +27 -0
  3. data/bin/rocketjob +1 -1
  4. data/lib/rocket_job/active_worker.rb +4 -3
  5. data/lib/rocket_job/cli.rb +13 -12
  6. data/lib/rocket_job/config.rb +17 -13
  7. data/lib/rocket_job/dirmon_entry.rb +88 -91
  8. data/lib/rocket_job/extensions/mongo/logging.rb +8 -4
  9. data/lib/rocket_job/extensions/mongoid/factory.rb +8 -6
  10. data/lib/rocket_job/extensions/rocket_job_adapter.rb +2 -4
  11. data/lib/rocket_job/heartbeat.rb +7 -8
  12. data/lib/rocket_job/job_exception.rb +6 -5
  13. data/lib/rocket_job/jobs/dirmon_job.rb +5 -7
  14. data/lib/rocket_job/jobs/housekeeping_job.rb +3 -2
  15. data/lib/rocket_job/jobs/on_demand_job.rb +104 -0
  16. data/lib/rocket_job/jobs/simple_job.rb +0 -2
  17. data/lib/rocket_job/jobs/upload_file_job.rb +100 -0
  18. data/lib/rocket_job/performance.rb +15 -10
  19. data/lib/rocket_job/plugins/cron.rb +7 -124
  20. data/lib/rocket_job/plugins/document.rb +8 -10
  21. data/lib/rocket_job/plugins/job/callbacks.rb +0 -1
  22. data/lib/rocket_job/plugins/job/logger.rb +0 -1
  23. data/lib/rocket_job/plugins/job/model.rb +15 -20
  24. data/lib/rocket_job/plugins/job/persistence.rb +3 -13
  25. data/lib/rocket_job/plugins/job/state_machine.rb +1 -2
  26. data/lib/rocket_job/plugins/job/throttle.rb +16 -12
  27. data/lib/rocket_job/plugins/job/worker.rb +15 -19
  28. data/lib/rocket_job/plugins/processing_window.rb +2 -2
  29. data/lib/rocket_job/plugins/restart.rb +3 -4
  30. data/lib/rocket_job/plugins/retry.rb +2 -3
  31. data/lib/rocket_job/plugins/singleton.rb +2 -3
  32. data/lib/rocket_job/plugins/state_machine.rb +19 -23
  33. data/lib/rocket_job/rocket_job.rb +4 -5
  34. data/lib/rocket_job/server.rb +35 -41
  35. data/lib/rocket_job/version.rb +2 -2
  36. data/lib/rocket_job/worker.rb +22 -21
  37. data/lib/rocketjob.rb +2 -0
  38. data/test/config/mongoid.yml +2 -2
  39. data/test/config_test.rb +0 -2
  40. data/test/dirmon_entry_test.rb +161 -134
  41. data/test/dirmon_job_test.rb +80 -78
  42. data/test/job_test.rb +0 -2
  43. data/test/jobs/housekeeping_job_test.rb +0 -1
  44. data/test/jobs/on_demand_job_test.rb +59 -0
  45. data/test/jobs/upload_file_job_test.rb +99 -0
  46. data/test/plugins/cron_test.rb +1 -3
  47. data/test/plugins/job/callbacks_test.rb +8 -13
  48. data/test/plugins/job/defaults_test.rb +0 -1
  49. data/test/plugins/job/logger_test.rb +2 -4
  50. data/test/plugins/job/model_test.rb +1 -2
  51. data/test/plugins/job/persistence_test.rb +0 -2
  52. data/test/plugins/job/state_machine_test.rb +0 -2
  53. data/test/plugins/job/throttle_test.rb +6 -8
  54. data/test/plugins/job/worker_test.rb +1 -2
  55. data/test/plugins/processing_window_test.rb +0 -2
  56. data/test/plugins/restart_test.rb +0 -1
  57. data/test/plugins/retry_test.rb +1 -2
  58. data/test/plugins/singleton_test.rb +0 -2
  59. data/test/plugins/state_machine_event_callbacks_test.rb +1 -2
  60. data/test/plugins/state_machine_test.rb +0 -2
  61. data/test/plugins/transaction_test.rb +5 -7
  62. data/test/test_db.sqlite3 +0 -0
  63. data/test/test_helper.rb +2 -1
  64. metadata +42 -36
@@ -104,8 +104,6 @@ module Plugins
104
104
  assert @job.queued?, @job.attributes.ai
105
105
  end
106
106
  end
107
-
108
107
  end
109
-
110
108
  end
111
109
  end
@@ -188,7 +188,6 @@ module Plugins
188
188
  refute job2.result
189
189
  end
190
190
  end
191
-
192
191
  end
193
192
  end
194
193
  end
@@ -7,7 +7,7 @@ module Plugins
7
7
 
8
8
  # Fails 5 times before succeeding
9
9
  def perform
10
- raise "Oh No" unless rocket_job_failure_count >= 5
10
+ raise 'Oh No' unless rocket_job_failure_count >= 5
11
11
  'DONE'
12
12
  end
13
13
  end
@@ -83,7 +83,6 @@ module Plugins
83
83
  assert @job.failed?, -> { @job.attributes.ai }
84
84
  end
85
85
  end
86
-
87
86
  end
88
87
  end
89
88
  end
@@ -3,7 +3,6 @@ require_relative '../test_helper'
3
3
  module Plugins
4
4
  # Unit Test for RocketJob::Job
5
5
  class SingletonTest < Minitest::Test
6
-
7
6
  class SingletonJob < RocketJob::Job
8
7
  include RocketJob::Plugins::Singleton
9
8
 
@@ -88,7 +87,6 @@ module Plugins
88
87
  job2.save!
89
88
  end
90
89
  end
91
-
92
90
  end
93
91
  end
94
92
  end
@@ -93,11 +93,10 @@ module Plugins
93
93
  @job = PositivePathJob.new
94
94
  @job.perform_now
95
95
  assert @job.completed?, @job.attributes.ai
96
- expected = %w(before_start_block before_start_method before_start2_block before_start_method2 after_start2_block after_start_method after_start_block perform before_complete_block before_complete_method before_complete2_block before_complete_method2 after_complete2_block after_complete_method after_complete_block)
96
+ expected = %w[before_start_block before_start_method before_start2_block before_start_method2 after_start2_block after_start_method after_start_block perform before_complete_block before_complete_method before_complete2_block before_complete_method2 after_complete2_block after_complete_method after_complete_block]
97
97
  assert_equal expected, @job.call_list, 'Sequence of before_perform callbacks is incorrect'
98
98
  end
99
99
  end
100
-
101
100
  end
102
101
  end
103
102
  end
@@ -3,7 +3,6 @@ require_relative '../test_helper'
3
3
  module Plugins
4
4
  # Unit Test for RocketJob::Job
5
5
  class StateMachineTest < Minitest::Test
6
-
7
6
  class Test
8
7
  include RocketJob::Plugins::Document
9
8
  include RocketJob::Plugins::StateMachine
@@ -63,7 +62,6 @@ module Plugins
63
62
  assert @doc.enabled?
64
63
  end
65
64
  end
66
-
67
65
  end
68
66
  end
69
67
  end
@@ -1,7 +1,7 @@
1
1
  require_relative '../test_helper'
2
2
  require 'active_record'
3
3
 
4
- ActiveRecord::Base.configurations = YAML::load(ERB.new(IO.read('test/config/database.yml')).result)
4
+ ActiveRecord::Base.configurations = YAML.safe_load(ERB.new(IO.read('test/config/database.yml')).result)
5
5
  ActiveRecord::Base.establish_connection(:test)
6
6
 
7
7
  ActiveRecord::Schema.define version: 0 do
@@ -16,7 +16,6 @@ end
16
16
  module Plugins
17
17
  module Job
18
18
  class TransactionTest < Minitest::Test
19
-
20
19
  class CommitTransactionJob < RocketJob::Job
21
20
  # Wrap perform with a transaction, so that it is rolled back on exception.
22
21
  include RocketJob::Plugins::Transaction
@@ -36,7 +35,7 @@ module Plugins
36
35
 
37
36
  def perform
38
37
  User.create!(login: login)
39
- raise "This must fail and rollback the transaction"
38
+ raise 'This must fail and rollback the transaction'
40
39
  end
41
40
  end
42
41
 
@@ -53,9 +52,9 @@ module Plugins
53
52
 
54
53
  describe '#rocket_job_transaction' do
55
54
  it 'is registered' do
56
- assert CommitTransactionJob.send(:get_callbacks, :perform).find { |c| c.filter == :rocket_job_transaction }
57
- assert RollbackTransactionJob.send(:get_callbacks, :perform).find { |c| c.filter == :rocket_job_transaction }
58
- refute RocketJob::Job.send(:get_callbacks, :perform).find { |c| c.filter == :rocket_job_transaction }
55
+ assert(CommitTransactionJob.send(:get_callbacks, :perform).find { |c| c.filter == :rocket_job_transaction })
56
+ assert(RollbackTransactionJob.send(:get_callbacks, :perform).find { |c| c.filter == :rocket_job_transaction })
57
+ refute(RocketJob::Job.send(:get_callbacks, :perform).find { |c| c.filter == :rocket_job_transaction })
59
58
  end
60
59
  end
61
60
 
@@ -79,7 +78,6 @@ module Plugins
79
78
  assert_equal 0, User.count
80
79
  end
81
80
  end
82
-
83
81
  end
84
82
  end
85
83
  end
data/test/test_db.sqlite3 CHANGED
Binary file
data/test/test_helper.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
2
+ ENV['TZ'] = 'America/New_York'
2
3
 
3
4
  require 'yaml'
4
5
  require 'minitest/autorun'
@@ -13,4 +14,4 @@ RocketJob::Config.load!('test', 'test/config/mongoid.yml')
13
14
  Mongoid.logger = SemanticLogger[Mongoid]
14
15
  Mongo::Logger.logger = SemanticLogger[Mongo]
15
16
 
16
- #RocketJob::Job.collection.database.command(dropDatabase: 1)
17
+ # RocketJob::Job.collection.database.command(dropDatabase: 1)
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rocketjob
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.3
4
+ version: 3.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Reid Morrison
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-18 00:00:00.000000000 Z
11
+ date: 2018-05-07 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: aasm
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '4.12'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '4.12'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: concurrent-ruby
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,20 +66,6 @@ dependencies:
52
66
  - - "~>"
53
67
  - !ruby/object:Gem::Version
54
68
  version: '4.1'
55
- - !ruby/object:Gem::Dependency
56
- name: aasm
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '4.12'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '4.12'
69
69
  description:
70
70
  email:
71
71
  - support@rocketjob.io
@@ -92,7 +92,9 @@ files:
92
92
  - lib/rocket_job/jobs/active_job.rb
93
93
  - lib/rocket_job/jobs/dirmon_job.rb
94
94
  - lib/rocket_job/jobs/housekeeping_job.rb
95
+ - lib/rocket_job/jobs/on_demand_job.rb
95
96
  - lib/rocket_job/jobs/simple_job.rb
97
+ - lib/rocket_job/jobs/upload_file_job.rb
96
98
  - lib/rocket_job/performance.rb
97
99
  - lib/rocket_job/plugins/cron.rb
98
100
  - lib/rocket_job/plugins/document.rb
@@ -125,6 +127,8 @@ files:
125
127
  - test/files/text.txt
126
128
  - test/job_test.rb
127
129
  - test/jobs/housekeeping_job_test.rb
130
+ - test/jobs/on_demand_job_test.rb
131
+ - test/jobs/upload_file_job_test.rb
128
132
  - test/plugins/cron_test.rb
129
133
  - test/plugins/job/callbacks_test.rb
130
134
  - test/plugins/job/defaults_test.rb
@@ -155,7 +159,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
159
  requirements:
156
160
  - - ">="
157
161
  - !ruby/object:Gem::Version
158
- version: '2.1'
162
+ version: '2.3'
159
163
  required_rubygems_version: !ruby/object:Gem::Requirement
160
164
  requirements:
161
165
  - - ">="
@@ -163,34 +167,36 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
167
  version: '0'
164
168
  requirements: []
165
169
  rubyforge_project:
166
- rubygems_version: 2.6.11
170
+ rubygems_version: 2.7.6
167
171
  signing_key:
168
172
  specification_version: 4
169
173
  summary: Ruby's missing batch system.
170
174
  test_files:
171
- - test/config/database.yml
172
- - test/config/mongoid.yml
173
175
  - test/config_test.rb
174
- - test/dirmon_entry_test.rb
175
- - test/dirmon_job_test.rb
176
- - test/files/text.txt
177
- - test/job_test.rb
178
- - test/jobs/housekeeping_job_test.rb
176
+ - test/config/mongoid.yml
177
+ - test/config/database.yml
178
+ - test/test_db.sqlite3
179
+ - test/plugins/state_machine_test.rb
180
+ - test/plugins/restart_test.rb
181
+ - test/plugins/state_machine_event_callbacks_test.rb
182
+ - test/plugins/transaction_test.rb
179
183
  - test/plugins/cron_test.rb
180
- - test/plugins/job/callbacks_test.rb
181
- - test/plugins/job/defaults_test.rb
182
184
  - test/plugins/job/logger_test.rb
183
- - test/plugins/job/model_test.rb
184
- - test/plugins/job/persistence_test.rb
185
185
  - test/plugins/job/state_machine_test.rb
186
- - test/plugins/job/throttle_test.rb
187
186
  - test/plugins/job/worker_test.rb
187
+ - test/plugins/job/throttle_test.rb
188
+ - test/plugins/job/defaults_test.rb
189
+ - test/plugins/job/persistence_test.rb
190
+ - test/plugins/job/callbacks_test.rb
191
+ - test/plugins/job/model_test.rb
192
+ - test/plugins/singleton_test.rb
188
193
  - test/plugins/processing_window_test.rb
189
- - test/plugins/restart_test.rb
190
194
  - test/plugins/retry_test.rb
191
- - test/plugins/singleton_test.rb
192
- - test/plugins/state_machine_event_callbacks_test.rb
193
- - test/plugins/state_machine_test.rb
194
- - test/plugins/transaction_test.rb
195
- - test/test_db.sqlite3
195
+ - test/job_test.rb
196
+ - test/dirmon_job_test.rb
197
+ - test/dirmon_entry_test.rb
198
+ - test/files/text.txt
196
199
  - test/test_helper.rb
200
+ - test/jobs/housekeeping_job_test.rb
201
+ - test/jobs/on_demand_job_test.rb
202
+ - test/jobs/upload_file_job_test.rb