lib/apn/sender_daemon.rb in apn_sender-0.0.7 vs lib/apn/sender_daemon.rb in apn_sender-1.0.0
- old
+ new
@@ -2,16 +2,21 @@
require 'rubygems'
require 'daemons'
require 'optparse'
module APN
+ # A wrapper designed to daemonize an APN::Sender instance to keep in running in the background.
+ # Connects worker's output to the Rails logger, if available. Creates a pid file suitable for
+ # monitoring with {monit}[http://mmonit.com/monit/].
+ #
+ # Based off delayed_job's great example. To use in a Rails app, <code>script/generate apn_sender</code>.
class SenderDaemon
def initialize(args)
- @options = {:quiet => true, :worker_count => 1, :environment => :development}
+ @options = {:quiet => true, :worker_count => 1, :environment => :development, :delay => 5}
- opts = OptionParser.new do |opts|
+ optparse = OptionParser.new do |opts|
opts.banner = "Usage: #{File.basename($0)} [options] start|stop|restart|run"
opts.on('-h', '--help', 'Show this message') do
puts opts
exit 1
@@ -36,11 +41,10 @@
end
end
# If no arguments, give help screen
@args = optparse.parse!(args.empty? ? ['-h'] : args)
-
- puts "OPTS: #{@options.inspect}"
+ @options[:verbose] = true if @options[:very_verbose]
end
def daemonize
@options[:worker_count].times do |worker_index|
process_name = @options[:worker_count] == 1 ? "apn_sender" : "apn_sender.#{worker_index}"
\ No newline at end of file