Sha256: 8bdff4ef3877912ffb80e5e545758457b5afdd4f1d42dd732ef39d6b02de94da
Contents?: true
Size: 1.74 KB
Versions: 1
Compression:
Stored size: 1.74 KB
Contents
# encoding: utf-8 require 'daemons' require 'optparse' module ZmeygoSync class Command attr_accessor :options, :client def initialize(args ={}) @options = { :verbose => false, :pid_dir => "#{Rails.root}/tmp/pids", :sleep_delay => 60, :debug => false # when debug is false - it will daomonize, otherwise - it won't } @monitor = false opts = 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 end opts.on('-s','--sleep-delay N', "Amount of time to sleep when no jobs are found") do |n| @options[:sleep_delay] = n.to_i end opts.on('-v','--verbose', "verbosity") do @options[:verbose] = true end opts.on('-d','--debug', "debug mode, don't daemonize") do @options[:debug] = true end end @args = opts.parse!(args) ZmeygoSync.configure self.options = @options self.client = ZmeygoSync::Client.new(@options) end def run unless defined?(Rails) raise "This is not rails app???" end step = 0 loop do self.client.push # once in 5 minutes download locales from server if step % 10 == 0 self.client.pull end step += 1 if step > 1_000 step = 0 end sleep(@options[:sleep_delay]) end rescue => e # Rails.logger.fatal e STDERR.puts e.message exit 1 end def daemonize if @options[:debug] run else Daemons.run_proc('zmeygo_sync') { run } end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
zmeygo_sync-0.21 | lib/zmeygo_sync/command.rb |