def main(): global app # 处理初始化参数 handle_args() # 初始化日志 xutils.init_logger() # 初始化数据库 try_init_db() # 加载缓存 try_load_cache() # 关闭autoreload使用自己实现的版本 var_env = dict() app = web.application(list(), var_env, autoreload=False) # 最后的mapping,用于匹配优先级较低的处理器 last_mapping = (r"/tools/(.*)", "handlers.tools.tools.handler") manager = xmanager.init(app, var_env, last_mapping = last_mapping) xmanager.reload() # 重新加载template xtemplate.reload() def reload_callback(): # 重新加载handlers目录下的所有模块 xmanager.reload() autoreload_thread.clear_watched_files() autoreload_thread.watch_dir(xconfig.HANDLERS_DIR, recursive=True) # autoreload just reload models autoreload_thread = AutoReloadThread(reload_callback) autoreload_thread.watch_dir(xconfig.HANDLERS_DIR, recursive=True) autoreload_thread.watch_file("core/xtemplate.py") autoreload_thread.start() # 启动定时任务检查 manager.run_task() # 注册信号响应 # 键盘终止信号 signal.signal(signal.SIGINT, handle_signal) # kill终止信号 signal.signal(signal.SIGTERM, handle_signal) # 时钟信号 # signal.signal(signal.SIGALRM, handle_signal) # signal.alarm(5) # 启动打开浏览器选项 if xconfig.OPEN_IN_BROWSER: webbrowser.open("http://localhost:%s/" % xconfig.PORT) app.run()
def main(): global app # 处理初始化参数 handle_args() # 初始化日志 xutils.init_logger() # 初始化数据库 try_init_db() # 加载缓存 try_load_cache() # 关闭autoreload使用自己实现的版本 var_env = dict() app = web.application(list(), var_env, autoreload=False) # 最后的mapping,用于匹配优先级较低的处理器 last_mapping = (r"/tools/(.*)", "handlers.tools.tools.handler") manager = xmanager.init(app, var_env, last_mapping=last_mapping) xmanager.reload() # 重新加载template xtemplate.reload() # 文件修改检测 init_autoreload() # 启动定时任务检查 manager.run_task() # 注册信号响应 # 键盘终止信号 signal.signal(signal.SIGINT, handle_signal) # kill终止信号 signal.signal(signal.SIGTERM, handle_signal) # 时钟信号 # signal.signal(signal.SIGALRM, handle_signal) # signal.alarm(5) # 启动打开浏览器选项 if xconfig.OPEN_IN_BROWSER: webbrowser.open("http://localhost:%s/" % xconfig.PORT) # 记录已经启动 xconfig.mark_started() # 监听端口 app.run()
def reload(self): """重启handlers目录下的所有的模块""" self.mapping = [] self.model_list = [] self.failed_mods = [] # remove all event handlers remove_handlers() self.load_model_dir(config.HANDLERS_DIR) self.mapping += self.basic_mapping self.mapping += self.last_mapping self.app.init_mapping(self.mapping) import xtemplate xtemplate.reload() # set 404 page self.app.notfound = notfound
def init(): global APP if APP is not None: return APP xconfig.IS_TEST = True xconfig.port = "1234" xconfig.DEV_MODE = True var_env = dict() xutils.remove_file("./testdata/data.db", hard=True) xconfig.init("./testdata") xtables.init() dbutil.init() APP = web.application(list(), var_env, autoreload=False) last_mapping = (r"/tools/(.*)", "handlers.tools.tools.handler") mgr = xmanager.init(APP, var_env, last_mapping=last_mapping) mgr.reload() # 加载template xtemplate.reload() return APP
def reload_template(): xtemplate.reload()