lib/pallets/cli.rb in pallets-0.2.0 vs lib/pallets/cli.rb in pallets-0.3.0
- old
+ new
@@ -9,11 +9,12 @@
@manager = Manager.new
@signal_queue = Queue.new
end
def run
- Pallets.logger.info 'Starting the awesomeness of Pallets <3'
+ Pallets.logger.info 'Starting the awesome Pallets <3'
+ Pallets.logger.info "Running on #{RUBY_DESCRIPTION}"
@manager.start
loop do
# This blocks until signals are received
@@ -28,15 +29,24 @@
private
def handle_signal(signal)
case signal
- when 'INT'
+ when 'INT', 'TERM'
raise Interrupt
+ when 'TTIN'
+ print_backtraces
end
end
+ def print_backtraces
+ (@manager.workers + [@manager.scheduler]).each do |actor|
+ Pallets.logger.info "Debugging #{actor.id}"
+ Pallets.logger.info actor.debug.join("\n") unless actor.debug.nil?
+ end
+ end
+
def parse_options
OptionParser.new do |opts|
opts.banner = 'Usage: pallets [options]'
opts.on('-b', '--backend NAME', 'Backend to use') do |backend|
@@ -49,10 +59,14 @@
opts.on('-f', '--max-failures NUM', Integer, 'Maximum allowed number of failures per task') do |max_failures|
Pallets.configuration.max_failures = max_failures
end
+ opts.on('-l', '--failed-job-lifespan NUM', Integer, 'Seconds a job stays in the given up set') do |failed_job_lifespan|
+ Pallets.configuration.failed_job_lifespan = failed_job_lifespan
+ end
+
opts.on('-n', '--namespace NAME', 'Namespace to use for backend') do |namespace|
Pallets.configuration.namespace = namespace
end
opts.on('-p', '--pool-size NUM', Integer, 'Size of backend pool') do |pool_size|
@@ -69,10 +83,14 @@
opts.on('-s', '--serializer NAME', 'Serializer to use') do |serializer|
Pallets.configuration.serializer = serializer
end
+ opts.on('-t', '--job-timeout NUM', Integer, 'Seconds allowed for a job to be processed') do |job_timeout|
+ Pallets.configuration.job_timeout = job_timeout
+ end
+
opts.on('-u', '--blocking-timeout NUM', Integer, 'Seconds to block while waiting for work') do |blocking_timeout|
Pallets.configuration.blocking_timeout = blocking_timeout
end
opts.on('-v', '--verbose', 'Output more logs') do
@@ -90,10 +108,10 @@
end
end.parse!
end
def setup_signal_handlers
- %w(INT).each do |signal|
+ %w(INT TERM TTIN).each do |signal|
trap signal do
@signal_queue.push signal
end
end
end