class Qwik::Server
Attributes
memory[R]
Public Class Methods
new(qconfig)
click to toggle source
Calls superclass method
# File vendor/qwik/lib/qwik/server.rb, line 25 def initialize(qconfig) @qconfig = qconfig @memory = ServerMemory.new(@qconfig) # init_trap trap(:TERM) { shutdown; } trap(:INT) { shutdown; } if Signal.list.key?("HUP") trap(:HUP) { reopen; } end init_directory(@qconfig) webrick_conf, @pidfile = init_webrick_conf(@qconfig, @memory) init_bury_logger super(webrick_conf) mount('/', Servlet) # Delegate all accesses. end
server_name()
click to toggle source
# File vendor/qwik/lib/qwik/server.rb, line 160 def self.server_name return "qwikWeb/#{VERSION}+#{RELEASE_DATE}" end
version()
click to toggle source
# File vendor/qwik/lib/qwik/server.rb, line 156 def self.version return VERSION end
Public Instance Methods
init_bury_logger()
click to toggle source
# File vendor/qwik/lib/qwik/server.rb, line 148 def init_bury_logger log_file = (@qconfig.log_dir.path + "bury.log").to_s # '::Logger' means standard library class. log = ::Logger.new(log_file, 'monthly') log.level = ::Logger::INFO @memory[:bury_log] = log end
init_directory(config)
click to toggle source
# File vendor/qwik/lib/qwik/server.rb, line 48 def init_directory(config) config.cache_dir.path.check_directory config.sites_dir.path.check_directory (config.sites_dir.path+config.default_sitename).check_directory config.etc_dir.path.check_directory config.grave_dir.path.check_directory config.log_dir.path.check_directory end
init_webrick_conf(config, memory)
click to toggle source
# File vendor/qwik/lib/qwik/server.rb, line 57 def init_webrick_conf(config, memory) # qwik-error.log web_error_log = (config.log_dir.path + Logger::WEB_ERROR_LOG).to_s pidfile = config.web_pid_file # qwikweb.pid servertype = WEBrick::Daemon if config.debug pidfile += '-d' servertype = WEBrick::SimpleServer web_error_log = $stdout web_error_log = 'qwik-error.log' if config.test end # qwik-access.log log = config.log_dir.path + Logger::WEB_ACCESS_LOG logger = Qwik::Logger.new(log.to_s) logger.verbose = true if config.debug && ! config.test memory[:qwik_access_log] = logger web_error_logger = WEBrick::Log.new(web_error_log, WEBrick::Log::INFO) memory[:logger] = web_error_logger access_log_file = (config.log_dir.path + Logger::ACCESS_LOG).to_s accesslog_logger = [[WEBrick::BasicLog.new(access_log_file, WEBrick::Log::INFO), WEBrick::AccessLog::COMBINED_LOG_FORMAT]] server = Server.server_name #server = "Apache/2.0.54 (Unix) #{server}" # Imitate Apache server webrick_config = { :HostnameLookups => false, :BindAddress => config.bind_address, :Port => config.web_port.to_i, :Logger => web_error_logger, :ServerType => servertype, :StartCallback => Proc.new { start_server; }, :StopCallback => Proc.new { stop_server; }, :AccessLog => accesslog_logger, :ServerSoftware => server, :QwikConfig => config, :QwikMemory => memory, #:MaxClients => 100, #:WEBrickThread => false, # test } return webrick_config, pidfile end
reopen()
click to toggle source
# File vendor/qwik/lib/qwik/server.rb, line 134 def reopen # qwik-access.log is an instance of Qwik::Logger logger = @memory[:qwik_access_log] logger.reopen # qwik-error.log is an instance of WEBrick::Log logger = @memory[:logger] logger.reopen # access.log is an instance of WEBrick::BasicLog webrick_accesslog = @config[:AccessLog][0][0] webrick_accesslog.reopen end
start_server()
click to toggle source
callback from :StartCallback
# File vendor/qwik/lib/qwik/server.rb, line 106 def start_server write_pid_file(@pidfile) threads = [] threads << SweepThread.new(@qconfig, @memory) threads << WeeklySendReportThread.new(@memory) threads << DailySendReportThread.new(@memory) threads << HourlySendReportThread.new(@memory) @memory[:threads] = threads threads.each {|th| t = Thread.new { th.start } t.abort_on_exception = true } #qp @qconfig.debug if @qconfig.debug require 'qwik/autoreload' AutoReload.start(1, true, 'Web') # auto reload every sec. end end
stop_server()
click to toggle source
callback from :StopCallback
# File vendor/qwik/lib/qwik/server.rb, line 130 def stop_server remove_pid_file(@pidfile) end