def main(): # 配置main.py的命令 define("port", default=None, help="Run server on a specific port, mast input", type=int) # start from cmd options.parse_command_line() try: if options.port == None: options.print_help() return except: print 'Usage: python main.py --port=8000' return # 信号监听 def sig_handler(sig, frame): my_logger.warning('Caught signal: %s', sig) tornado.ioloop.IOLoop.instance().add_callback(shutdown) # 关闭服务器 def shutdown(): my_logger.info('Stopping http server') http_server.stop() io_loop = tornado.ioloop.IOLoop.instance() deadline = time.time() + 1 def stop_loop(): now = time.time() if now < deadline and (io_loop._callbacks or io_loop._timeouts): io_loop.add_timeout(now + 1, stop_loop) else: io_loop.stop() my_logger.info('Shutdown') stop_loop() global http_server http_server = tornado.httpserver.HTTPServer(Application()) http_server.listen(options.port) # 按Ctrl+C退出程序 signal.signal(signal.SIGTERM, sig_handler) signal.signal(signal.SIGINT, sig_handler) # start server tornado.ioloop.IOLoop.instance().start() my_logger.info('Exit Master')
import tornado.web from util.options import define, options from util.config import Config from util import torndb import util.globalvar as GlobalVar from service.lib import BookHandler, ReaderHandler, BorrowHandler MODULE = 'master' MAX_WAIT_SECONDS_BEFORE_SHUTDOWN = 3 CONF_FILE = 'conf/svc.conf' define('port', default=None, help="run server on a specific port, must imput", type=int) def parse_config(conf_file): conf = Config(conf_file) conf.load_conf() def init_logging(port): log_file = MODULE + "." + str(port) + ".log" logger = logging.getLogger() logger.setLevel(Config.log_level) fh = logging.handlers.TimedRotatingFileHandler(os.path.join( Config.log_path, log_file),
from util.options import define,options from util.config import Config from util import torndb from util.dbconst import TableName,TableFields,TableSelectSql import util.globalvar as GlobalVar from service.host import HostHandler MODULE="master" MAX_WAIT_SECONDS_BEFORE_SHUTDOWN = 3 CONF_FILE="conf/svc.conf" #Define command parameter define("port", default=None, help="Run server on a specific port, mast input", type=int) #The config file parser def parse_config(conf_file): #parse conf file conf = Config(conf_file) conf.load_conf() #Init logging def init_logging(port): log_file = MODULE + "." + str(port) + ".log" logger = logging.getLogger() logger.setLevel(Config.log_level) #fh = logging.FileHandler(os.path.join(Config.log_path, log_file)) fh = logging.handlers.TimedRotatingFileHandler(os.path.join(Config.log_path, log_file), when='D', backupCount=10)
import tornado.ioloop import tornado.web from util.options import define, options from util.config import Config from util import torndb import util.globalvar as GlobalVar from service.lib import BookHandler, ReaderHandler, BorrowHandler MODULE='master' MAX_WAIT_SECONDS_BEFORE_SHUTDOWN=3 CONF_FILE='conf/svc.conf' define('port',default=None, help="run server on a specific port, must imput",type=int) def parse_config(conf_file): conf = Config(conf_file) conf.load_conf() def init_logging(port): log_file=MODULE+"."+str(port)+".log" logger=logging.getLogger() logger.setLevel(Config.log_level) fh = logging.handlers.TimedRotatingFileHandler(os.path.join(Config.log_path,log_file),when='D',backupCount=10) sh = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s -%(module)s:%(filename)s-L%(lineno)d-%(levelname)s: %(message)s') fh.setFormatter(formatter)