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