rocketjob 5.1.1 → 5.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (83) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -2
  3. data/bin/rocketjob +2 -2
  4. data/bin/rocketjob_batch_perf +1 -1
  5. data/bin/rocketjob_perf +1 -1
  6. data/lib/rocket_job/active_worker.rb +1 -0
  7. data/lib/rocket_job/batch.rb +17 -17
  8. data/lib/rocket_job/batch/callbacks.rb +1 -2
  9. data/lib/rocket_job/batch/io.rb +12 -8
  10. data/lib/rocket_job/batch/logger.rb +2 -2
  11. data/lib/rocket_job/batch/lower_priority.rb +2 -2
  12. data/lib/rocket_job/batch/model.rb +23 -23
  13. data/lib/rocket_job/batch/performance.rb +19 -21
  14. data/lib/rocket_job/batch/result.rb +1 -1
  15. data/lib/rocket_job/batch/results.rb +1 -1
  16. data/lib/rocket_job/batch/state_machine.rb +5 -6
  17. data/lib/rocket_job/batch/statistics.rb +10 -8
  18. data/lib/rocket_job/batch/tabular.rb +2 -2
  19. data/lib/rocket_job/batch/tabular/input.rb +11 -7
  20. data/lib/rocket_job/batch/tabular/output.rb +1 -1
  21. data/lib/rocket_job/batch/throttle.rb +12 -31
  22. data/lib/rocket_job/batch/throttle_running_workers.rb +71 -0
  23. data/lib/rocket_job/batch/throttle_windows.rb +67 -0
  24. data/lib/rocket_job/batch/worker.rb +148 -116
  25. data/lib/rocket_job/cli.rb +57 -54
  26. data/lib/rocket_job/config.rb +8 -10
  27. data/lib/rocket_job/dirmon_entry.rb +13 -10
  28. data/lib/rocket_job/event.rb +16 -16
  29. data/lib/rocket_job/extensions/mongo/logging.rb +2 -2
  30. data/lib/rocket_job/extensions/mongoid/clients/options.rb +2 -2
  31. data/lib/rocket_job/extensions/mongoid/contextual/mongo.rb +4 -2
  32. data/lib/rocket_job/extensions/mongoid/factory.rb +13 -5
  33. data/lib/rocket_job/extensions/rocket_job_adapter.rb +2 -1
  34. data/lib/rocket_job/job_exception.rb +0 -3
  35. data/lib/rocket_job/jobs/dirmon_job.rb +4 -4
  36. data/lib/rocket_job/jobs/housekeeping_job.rb +7 -7
  37. data/lib/rocket_job/jobs/on_demand_batch_job.rb +14 -4
  38. data/lib/rocket_job/jobs/on_demand_job.rb +3 -3
  39. data/lib/rocket_job/jobs/performance_job.rb +1 -1
  40. data/lib/rocket_job/jobs/re_encrypt/relational_job.rb +11 -10
  41. data/lib/rocket_job/jobs/upload_file_job.rb +9 -5
  42. data/lib/rocket_job/performance.rb +24 -22
  43. data/lib/rocket_job/plugins/cron.rb +7 -3
  44. data/lib/rocket_job/plugins/document.rb +7 -5
  45. data/lib/rocket_job/plugins/job/callbacks.rb +1 -1
  46. data/lib/rocket_job/plugins/job/logger.rb +3 -3
  47. data/lib/rocket_job/plugins/job/model.rb +34 -27
  48. data/lib/rocket_job/plugins/job/persistence.rb +7 -34
  49. data/lib/rocket_job/plugins/job/state_machine.rb +5 -4
  50. data/lib/rocket_job/plugins/job/throttle.rb +13 -29
  51. data/lib/rocket_job/plugins/job/throttle_running_jobs.rb +3 -3
  52. data/lib/rocket_job/plugins/job/worker.rb +22 -70
  53. data/lib/rocket_job/plugins/processing_window.rb +5 -4
  54. data/lib/rocket_job/plugins/restart.rb +3 -3
  55. data/lib/rocket_job/plugins/retry.rb +2 -2
  56. data/lib/rocket_job/plugins/singleton.rb +1 -2
  57. data/lib/rocket_job/plugins/state_machine.rb +4 -4
  58. data/lib/rocket_job/plugins/transaction.rb +1 -1
  59. data/lib/rocket_job/rocket_job.rb +5 -4
  60. data/lib/rocket_job/server.rb +2 -2
  61. data/lib/rocket_job/server/model.rb +14 -13
  62. data/lib/rocket_job/server/state_machine.rb +1 -2
  63. data/lib/rocket_job/sliced/compressed_slice.rb +4 -4
  64. data/lib/rocket_job/sliced/encrypted_slice.rb +4 -4
  65. data/lib/rocket_job/sliced/input.rb +16 -16
  66. data/lib/rocket_job/sliced/output.rb +2 -2
  67. data/lib/rocket_job/sliced/slice.rb +43 -22
  68. data/lib/rocket_job/sliced/slices.rb +14 -11
  69. data/lib/rocket_job/subscriber.rb +6 -6
  70. data/lib/rocket_job/subscribers/logger.rb +3 -3
  71. data/lib/rocket_job/supervisor.rb +12 -12
  72. data/lib/rocket_job/supervisor/shutdown.rb +7 -7
  73. data/lib/rocket_job/throttle_definition.rb +37 -0
  74. data/lib/rocket_job/throttle_definitions.rb +39 -0
  75. data/lib/rocket_job/version.rb +1 -1
  76. data/lib/rocket_job/worker.rb +116 -34
  77. data/lib/rocket_job/worker_pool.rb +6 -6
  78. data/lib/rocketjob.rb +72 -76
  79. metadata +17 -18
  80. data/lib/rocket_job/batch/throttle_running_slices.rb +0 -55
  81. data/lib/rocket_job/extensions/mongoid_5/clients/options.rb +0 -38
  82. data/lib/rocket_job/extensions/mongoid_5/contextual/mongo.rb +0 -64
  83. data/lib/rocket_job/extensions/mongoid_5/factory.rb +0 -13
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1eaf1de774f144f26c22ce60a7a6051f1300a26dba14d76ba93e4eee705a238d
4
- data.tar.gz: 15a2325ebbc517977dfae5ed5695d574ac5941578b4565c9d6e468f84f5523ae
3
+ metadata.gz: fe39da29017eca601c104ca9d7c4fa90f903c32cbf3822e064cbd4a7f0780272
4
+ data.tar.gz: ce81cfb0d3a0ac4dbfe4ebe7c549077e56ca52d19ca41a2fda150561ecfeedd7
5
5
  SHA512:
6
- metadata.gz: ceb14a804ad87ae2e3b0c94414261efbf68e6db606b0ad1251b07820d715640439cf230f32ab836f2d40049fc74662761d8ca260c2b2435047675d2bd0575198
7
- data.tar.gz: 88f29b1f69867c819f83da5e8e3a633662355f9ee4e6e0c749908b8939db08db7bc1fa4b3751a25294c5bbd75576045a739c0d3ac6416d5143d2d9d1ee081be7
6
+ metadata.gz: fa49046d738a5064da99363e0d854253d17c375ab1e75b095c118139d9081781b9e4177bc03cf70abd4edb906b43cdc033b96234bd5864b5f9959e81f1421074
7
+ data.tar.gz: 5e67742618a4ec874a1c43649d8619cec007380f8db84a3a81f584ec6f9896be0e14e062e69955158732b32e419a8ac7bfab9eef394c983a9f484a9c5c04c934
data/README.md CHANGED
@@ -3,9 +3,9 @@
3
3
 
4
4
  Ruby's missing batch system
5
5
 
6
- Checkout http://rocketjob.io/
6
+ Checkout https://rocketjob.io/
7
7
 
8
- ![Rocket Job](http://rocketjob.io/images/rocket/rocket-icon-512x512.png)
8
+ ![Rocket Job](https://rocketjob.io/images/rocket/rocket-icon-512x512.png)
9
9
 
10
10
  ## Documentation
11
11
 
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
- require 'semantic_logger'
4
- require 'rocket_job/cli'
3
+ require "semantic_logger"
4
+ require "rocket_job/cli"
5
5
 
6
6
  # Start a rocketjob server instance from the command line
7
7
  # Allow Ruby to catch and display any startup exceptions
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- require 'rocketjob_batch'
2
+ require "rocketjob_batch"
3
3
 
4
4
  # Log to console
5
5
  SemanticLogger.add_appender(io: STDOUT, formatter: :color)
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env ruby
2
- require 'rocketjob'
2
+ require "rocketjob"
3
3
 
4
4
  # Log to console
5
5
  SemanticLogger.add_appender(io: STDOUT, formatter: :color)
@@ -29,6 +29,7 @@ module RocketJob
29
29
  def self.requeue_zombies
30
30
  all.each do |active_worker|
31
31
  next if !active_worker.zombie? || !active_worker.job.may_requeue?(active_worker.server_name)
32
+
32
33
  active_worker.job.requeue!(active_worker.server_name)
33
34
  end
34
35
  end
@@ -1,12 +1,12 @@
1
- require 'active_support/concern'
2
- require 'rocket_job/batch/callbacks'
3
- require 'rocket_job/batch/io'
4
- require 'rocket_job/batch/logger'
5
- require 'rocket_job/batch/model'
6
- require 'rocket_job/batch/state_machine'
7
- require 'rocket_job/batch/throttle'
8
- require 'rocket_job/batch/throttle_running_slices'
9
- require 'rocket_job/batch/worker'
1
+ require "active_support/concern"
2
+ require "rocket_job/batch/callbacks"
3
+ require "rocket_job/batch/io"
4
+ require "rocket_job/batch/logger"
5
+ require "rocket_job/batch/model"
6
+ require "rocket_job/batch/state_machine"
7
+ require "rocket_job/batch/throttle"
8
+ require "rocket_job/batch/throttle_running_workers"
9
+ require "rocket_job/batch/worker"
10
10
 
11
11
  module RocketJob
12
12
  module Batch
@@ -18,15 +18,15 @@ module RocketJob
18
18
  include Logger
19
19
  include Worker
20
20
  include Throttle
21
- include ThrottleRunningSlices
21
+ include ThrottleRunningWorkers
22
22
  include IO
23
23
 
24
- autoload :LowerPriority, 'rocket_job/batch/lower_priority'
25
- autoload :Performance, 'rocket_job/batch/performance'
26
- autoload :Statistics, 'rocket_job/batch/statistics'
27
- autoload :Result, 'rocket_job/batch/result'
28
- autoload :Results, 'rocket_job/batch/results'
29
- autoload :Tabular, 'rocket_job/batch/tabular'
24
+ autoload :LowerPriority, "rocket_job/batch/lower_priority"
25
+ autoload :Performance, "rocket_job/batch/performance"
26
+ autoload :Statistics, "rocket_job/batch/statistics"
27
+ autoload :ThrottleWindows, "rocket_job/batch/throttle_windows"
28
+ autoload :Result, "rocket_job/batch/result"
29
+ autoload :Results, "rocket_job/batch/results"
30
+ autoload :Tabular, "rocket_job/batch/tabular"
30
31
  end
31
32
  end
32
-
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
 
3
3
  module RocketJob
4
4
  module Batch
@@ -34,7 +34,6 @@ module RocketJob
34
34
  set_callback(:after_batch, :after, *filters, &blk)
35
35
  end
36
36
  end
37
-
38
37
  end
39
38
  end
40
39
  end
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
 
3
3
  module RocketJob
4
4
  module Batch
@@ -14,9 +14,11 @@ module RocketJob
14
14
  # Default: None ( Uses the single default input collection for this job )
15
15
  # Validates: This value must be one of those listed in #input_categories
16
16
  def input(category = :main)
17
- raise "Category #{category.inspect}, must be registered in input_categories: #{input_categories.inspect}" unless input_categories.include?(category) || (category == :main)
17
+ unless input_categories.include?(category) || (category == :main)
18
+ raise "Category #{category.inspect}, must be registered in input_categories: #{input_categories.inspect}"
19
+ end
18
20
 
19
- (@inputs ||= {})[category] ||= RocketJob::Sliced::Input.new(rocket_job_io_slice_arguments("inputs", category))
21
+ (@inputs ||= {})[category] ||= RocketJob::Sliced::Input.new(**rocket_job_io_slice_arguments("inputs", category))
20
22
  end
21
23
 
22
24
  # Returns [RocketJob::Sliced::Output] output collection for holding output slices
@@ -28,9 +30,11 @@ module RocketJob
28
30
  # Default: None ( Uses the single default output collection for this job )
29
31
  # Validates: This value must be one of those listed in #output_categories
30
32
  def output(category = :main)
31
- raise "Category #{category.inspect}, must be registered in output_categories: #{output_categories.inspect}" unless output_categories.include?(category) || (category == :main)
33
+ unless output_categories.include?(category) || (category == :main)
34
+ raise "Category #{category.inspect}, must be registered in output_categories: #{output_categories.inspect}"
35
+ end
32
36
 
33
- (@outputs ||= {})[category] ||= RocketJob::Sliced::Output.new(rocket_job_io_slice_arguments("outputs", category))
37
+ (@outputs ||= {})[category] ||= RocketJob::Sliced::Output.new(**rocket_job_io_slice_arguments("outputs", category))
34
38
  end
35
39
 
36
40
  # Upload the supplied file, io, IOStreams::Path, or IOStreams::Stream.
@@ -110,7 +114,7 @@ module RocketJob
110
114
  # * Only use this method for UTF-8 data, for binary data use #input_slice or #input_records.
111
115
  # * CSV parsing is slow, so it is usually left for the workers to do.
112
116
  def upload(stream = nil, file_name: nil, category: :main, stream_mode: :line, on_first: nil, **args, &block)
113
- raise(ArgumentError, 'Either stream, or a block must be supplied') unless stream || block
117
+ raise(ArgumentError, "Either stream, or a block must be supplied") unless stream || block
114
118
 
115
119
  stream_mode = stream_mode.to_sym
116
120
  # Backward compatibility with existing v4 jobs
@@ -384,7 +388,8 @@ module RocketJob
384
388
  if block
385
389
  RocketJob::Sliced::Writer::Output.collect(self, input_slice, &block)
386
390
  else
387
- raise(ArgumentError, 'result parameter is required when no block is supplied') unless result
391
+ raise(ArgumentError, "result parameter is required when no block is supplied") unless result
392
+
388
393
  RocketJob::Sliced::Writer::Output.collect(self, input_slice) { |writer| writer << result }
389
394
  end
390
395
  end
@@ -403,7 +408,6 @@ module RocketJob
403
408
  end
404
409
  args
405
410
  end
406
-
407
411
  end
408
412
  end
409
413
  end
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
 
3
3
  module RocketJob
4
4
  module Batch
@@ -31,7 +31,7 @@ module RocketJob
31
31
  # - silence noisy jobs by raising log level
32
32
  def rocket_job_batch_slice_logger(&block)
33
33
  logger.measure_info(
34
- 'Completed slice',
34
+ "Completed slice",
35
35
  metric: "#{self.class.name}/slice",
36
36
  log_exception: :full,
37
37
  on_exception_level: :error,
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
  module RocketJob
3
3
  module Batch
4
4
  # Automatically lower the priority for Jobs with a higher record_count.
@@ -33,7 +33,7 @@ module RocketJob
33
33
 
34
34
  included do
35
35
  unless public_method_defined?(:record_count=)
36
- raise(ArgumentError, 'LowerPriority can only be used in conjunction with RocketJob::Plugins::Batch')
36
+ raise(ArgumentError, "LowerPriority can only be used in conjunction with RocketJob::Plugins::Batch")
37
37
  end
38
38
 
39
39
  # For each of this many records lower the priority by 1.
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
  module RocketJob
3
3
  module Batch
4
4
  # Model attributes
@@ -77,8 +77,10 @@ module RocketJob
77
77
  # Under some circumstances ActiveModel is passing in a nil value even though the
78
78
  # attributes have default values
79
79
  Array(value).each do |category|
80
- record.errors.add(attr, 'must only contain Symbol values') unless category.kind_of?(Symbol)
81
- record.errors.add(attr, 'must only consist of lowercase characters, digits, and _') unless category.to_s =~ /\A[a-z_0-9]+\Z/
80
+ record.errors.add(attr, "must only contain Symbol values") unless category.is_a?(Symbol)
81
+ unless category.to_s =~ /\A[a-z_0-9]+\Z/
82
+ record.errors.add(attr, "must only consist of lowercase characters, digits, and _")
83
+ end
82
84
  end
83
85
  end
84
86
  end
@@ -97,7 +99,7 @@ module RocketJob
97
99
  # Returns 0 if the total record count has not yet been set
98
100
  def percent_complete
99
101
  return 100 if completed?
100
- return 0 unless record_count.to_i > 0
102
+ return 0 unless record_count.to_i.positive?
101
103
 
102
104
  # Approximate number of input records
103
105
  input_records = input.count.to_f * slice_size
@@ -110,32 +112,31 @@ module RocketJob
110
112
  end
111
113
 
112
114
  # Returns [Hash] status of this job
113
- def status(time_zone = 'Eastern Time (US & Canada)')
115
+ def status(time_zone = "Eastern Time (US & Canada)")
114
116
  h = {}
115
- case
116
- when queued?
117
- h['queued_slices'] = input.queued.count
118
- when running? || paused? || failed?
119
- h['active_slices'] = worker_count
120
- h['failed_slices'] = input.failed.count
121
- h['queued_slices'] = input.queued.count
117
+ if queued?
118
+ h["queued_slices"] = input.queued.count
119
+ elsif running? || paused? || failed?
120
+ h["active_slices"] = worker_count
121
+ h["failed_slices"] = input.failed.count
122
+ h["queued_slices"] = input.queued.count
122
123
  # Very high level estimated time left
123
- if record_count && running? && (record_count > 0)
124
+ if record_count && running? && record_count.positive?
124
125
  percent = percent_complete
125
126
  if percent >= 5
126
127
  secs = seconds.to_f
127
- h['est_remaining_duration'] = RocketJob.seconds_as_duration((((secs / percent) * 100) - secs))
128
+ h["est_remaining_duration"] = RocketJob.seconds_as_duration((((secs / percent) * 100) - secs))
128
129
  end
129
130
  end
130
- when completed?
131
- secs = seconds.to_f
132
- h['records_per_hour'] = ((record_count.to_f / secs) * 60 * 60).round if record_count && (record_count > 0) && (secs > 0.0)
131
+ elsif completed?
132
+ secs = seconds.to_f
133
+ h["records_per_hour"] = ((record_count.to_f / secs) * 60 * 60).round if record_count&.positive? && (secs > 0.0)
133
134
  end
134
- h['output_slices'] = output.count if collect_output? && !completed?
135
+ h["output_slices"] = output.count if collect_output? && !completed?
135
136
  h.merge!(super(time_zone))
136
- h.delete('result')
137
+ h.delete("result")
137
138
  # Worker name should be retrieved from the slices when processing
138
- h.delete('worker_name') if sub_state == :processing
139
+ h.delete("worker_name") if sub_state == :processing
139
140
  h
140
141
  end
141
142
 
@@ -145,9 +146,9 @@ module RocketJob
145
146
 
146
147
  case sub_state
147
148
  when :before, :after
148
- worker_name
149
+ [worker_name]
149
150
  when :processing
150
- input.running.collect { |slice| slice.worker_name }
151
+ input.running.collect(&:worker_name)
151
152
  else
152
153
  []
153
154
  end
@@ -171,7 +172,6 @@ module RocketJob
171
172
  @worker_count_last = Time.now.to_i
172
173
  @worker_count
173
174
  end
174
-
175
175
  end
176
176
  end
177
177
  end
@@ -1,6 +1,6 @@
1
- require 'optparse'
2
- require 'csv'
3
- require 'yaml'
1
+ require "optparse"
2
+ require "csv"
3
+ require "yaml"
4
4
  module RocketJob
5
5
  module Batch
6
6
  class Performance
@@ -8,8 +8,8 @@ module RocketJob
8
8
 
9
9
  def initialize
10
10
  @count = 10_000_000
11
- @environment = ENV['RAILS_ENV'] || ENV['RACK_ENV'] || 'development'
12
- @mongo_config = 'config/mongoid.yml'
11
+ @environment = ENV["RAILS_ENV"] || ENV["RACK_ENV"] || "development"
12
+ @mongo_config = "config/mongoid.yml"
13
13
  @compress = false
14
14
  @encrypt = false
15
15
  @slice_size = 1000
@@ -17,7 +17,7 @@ module RocketJob
17
17
 
18
18
  def run_test_case(count = self.count)
19
19
  servers = RocketJob::Server.count
20
- raise 'Please start workers before starting the performance test' if servers == 0
20
+ raise "Please start workers before starting the performance test" if servers.zero?
21
21
 
22
22
  count_running_workers
23
23
 
@@ -33,10 +33,8 @@ module RocketJob
33
33
  end
34
34
  job.save!
35
35
 
36
- puts 'Waiting for job to complete'
37
- while (!job.reload.completed?)
38
- sleep 3
39
- end
36
+ puts "Waiting for job to complete"
37
+ sleep 3 until job.reload.completed?
40
38
 
41
39
  duration = job.completed_at - job.started_at
42
40
  {count: count, duration: duration, records_per_second: (count.to_f / duration).round(3), workers: workers, servers: servers, compress: compress, encrypt: encrypt}
@@ -47,7 +45,7 @@ module RocketJob
47
45
  ruby = defined?(JRuby) ? "jruby_#{JRUBY_VERSION}" : "ruby_#{RUBY_VERSION}"
48
46
  version = RocketJob::VERSION
49
47
 
50
- CSV.open("job_results_#{ruby}_v#{version}.csv", 'wb') do |csv|
48
+ CSV.open("job_results_#{ruby}_v#{version}.csv", "wb") do |csv|
51
49
  csv << results.first.keys
52
50
  results.each { |result| csv << result.values }
53
51
  end
@@ -55,28 +53,28 @@ module RocketJob
55
53
 
56
54
  # Parse command line options
57
55
  def parse(argv)
58
- parser = OptionParser.new do |o|
59
- o.on('-c', '--count COUNT', 'Count of records to enqueue') do |arg|
56
+ parser = OptionParser.new do |o|
57
+ o.on("-c", "--count COUNT", "Count of records to enqueue") do |arg|
60
58
  self.count = arg.to_i
61
59
  end
62
- o.on('-m', '--mongo MONGO_CONFIG_FILE_NAME', 'Location of mongoid.yml config file') do |arg|
60
+ o.on("-m", "--mongo MONGO_CONFIG_FILE_NAME", "Location of mongoid.yml config file") do |arg|
63
61
  self.mongo_config = arg
64
62
  end
65
- o.on('-e', '--environment ENVIRONMENT', 'The environment to run the app on (Default: RAILS_ENV || RACK_ENV || development)') do |arg|
63
+ o.on("-e", "--environment ENVIRONMENT", "The environment to run the app on (Default: RAILS_ENV || RACK_ENV || development)") do |arg|
66
64
  self.environment = arg
67
65
  end
68
- o.on('-z', '--compress', 'Turn on compression') do |arg|
66
+ o.on("-z", "--compress", "Turn on compression") do
69
67
  self.compress = true
70
68
  end
71
- o.on('-E', '--encrypt', 'Turn on encryption') do |arg|
69
+ o.on("-E", "--encrypt", "Turn on encryption") do
72
70
  self.encrypt = true
73
71
  end
74
- o.on('-s', '--slice_size COUNT', 'Slice size') do |arg|
72
+ o.on("-s", "--slice_size COUNT", "Slice size") do
75
73
  self.slice_size = arg.to_i
76
74
  end
77
75
  end
78
- parser.banner = 'rocketjob_batch_perf <options>'
79
- parser.on_tail '-h', '--help', 'Show help' do
76
+ parser.banner = "rocketjob_batch_perf <options>"
77
+ parser.on_tail "-h", "--help", "Show help" do
80
78
  puts parser
81
79
  exit 1
82
80
  end
@@ -88,12 +86,12 @@ module RocketJob
88
86
  self.workers = 0
89
87
  RocketJob::Server.running.each do |server|
90
88
  next if server.zombie?
89
+
91
90
  self.servers += 1
92
91
  self.workers += server.heartbeat.workers
93
92
  end
94
93
  puts "Running: #{workers} workers, distributed across #{servers} servers"
95
94
  end
96
-
97
95
  end
98
96
  end
99
97
  end
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
 
3
3
  module RocketJob
4
4
  module Batch
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
 
3
3
  module RocketJob
4
4
  module Batch
@@ -1,4 +1,4 @@
1
- require 'active_support/concern'
1
+ require "active_support/concern"
2
2
 
3
3
  module RocketJob
4
4
  module Batch
@@ -23,15 +23,15 @@ module RocketJob
23
23
  aasm.state_machine.add_event(:requeue, {}) do
24
24
  # Requeue perform
25
25
  transitions from: :running, to: :running,
26
- if: -> server_name { sub_state == :processing },
26
+ if: ->(_server_name) { sub_state == :processing },
27
27
  after: :rocket_job_requeue_sub_state_processing
28
28
  # Requeue after_batch
29
29
  transitions from: :running, to: :running,
30
- if: -> server_name { worker_on_server?(server_name) && (sub_state == :after) },
30
+ if: ->(server_name) { worker_on_server?(server_name) && (sub_state == :after) },
31
31
  after: :rocket_job_requeue_sub_state_after
32
32
  # Requeue before_batch
33
33
  transitions from: :running, to: :queued,
34
- if: -> server_name { worker_on_server?(server_name) && (sub_state == :before) },
34
+ if: ->(server_name) { worker_on_server?(server_name) && (sub_state == :before) },
35
35
  after: :rocket_job_requeue_sub_state_before
36
36
  end
37
37
 
@@ -68,7 +68,7 @@ module RocketJob
68
68
  end
69
69
 
70
70
  def rocket_job_sub_state_before
71
- self.sub_state = :before unless self.sub_state
71
+ self.sub_state = :before unless sub_state
72
72
  end
73
73
 
74
74
  def rocket_job_clear_sub_state
@@ -96,7 +96,6 @@ module RocketJob
96
96
  def rocket_job_requeue_failed_slices
97
97
  input.requeue_failed
98
98
  end
99
-
100
99
  end
101
100
  end
102
101
  end