コード例 #1
0
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()
コード例 #2
0
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()
コード例 #3
0
    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
コード例 #4
0
ファイル: test_base.py プロジェクト: ydx2099/xnote
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
コード例 #5
0
def reload_template():
    xtemplate.reload()