namespace :insque do

desc 'Starts insque listener and janitor'
task :run => :environment do
  trap('TERM') { puts "SIGTERM"; exit 0 }
  Thread.abort_on_exception=true
  threads = []
  threads << Thread.new() { Insque.listen }
  threads << Thread.new() { Insque.janitor }
  threads << Thread.new() { Insque.slow_listen }
  threads << Thread.new() { Insque.slow_janitor }
  threads.each {|t| t.join }
end

desc 'Starts insque listener'
task :listener => :environment do
  trap('TERM') { puts "SIGTERM"; exit 0 }
  Thread.abort_on_exception=true
  Insque.listen
end

desc 'Starts insque janitor'
task :janitor => :environment do
  trap('TERM') { puts "SIGTERM"; exit 0 }
  Thread.abort_on_exception=true
  Insque.janitor
end

end