Пример #1
0
def try_init_db():
    try:
        # 初始化数据库
        xtables.init()
        # 初始化leveldb数据库
        dbutil.init()
    except:
        xutils.print_exc()
        xconfig.errors.append("数据库初始化失败")
Пример #2
0
def init():
    xtables.init()
    xconfig.IS_TEST = True
    xconfig.port = "1234"
    var_env = dict()
    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()
    return app
Пример #3
0
def main():
    global app
    handle_args()
    port = config.PORT
    if port != DEFAULT_PORT:
        # 指定端口优先级最高
        os.environ["PORT"] = port

    if not os.environ.get("PORT"):
        os.environ["PORT"] = port

    var_env = dict()
    config.set("port", port)
    config.set("start_time", xutils.format_datetime())
    # 关闭autoreload使用自己实现的版本
    app = web.application(list(), var_env, autoreload=False)
    # 初始化数据库
    xtables.init()
    # 加载持久化的缓存
    xutils.cacheutil.load_dump()

    # 最后的mapping,用于匹配优先级较低的处理器
    last_mapping = (r"/tools/(.*)", "handlers.tools.tools.handler")
    manager = xmanager.init(app, var_env, last_mapping = last_mapping)
    xmanager.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("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()
Пример #4
0
def init():
    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()
    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()
    return app
Пример #5
0
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
Пример #6
0
def main():
    global app
    handle_args()
    port = config.PORT
    if not os.environ.get("PORT"):
        os.environ["PORT"] = port

    var_env = dict()
    config.set("port", port)
    config.set("start_time", xutils.format_datetime())
    # 关闭autoreload使用自己实现的版本
    app = web.application(list(), var_env, autoreload=False)
    # 初始化数据库
    xtables.init()

    # 最后的mapping,用于匹配优先级较低的处理器
    last_mapping = (r"/tools/(.*)", "handlers.tools.tools.handler")
    manager = xmanager.init(app, var_env, last_mapping=last_mapping)
    manager.reload()

    def reload_callback():
        # 重新加载handlers目录下的所有模块
        manager.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("xtemplate.py")
    autoreload_thread.start()
    # 启动定时任务检查
    manager.run_task()

    if xconfig.INIT_SCRIPT is not None:
        xutils.exec_script(xconfig.INIT_SCRIPT)

    if xconfig.OPEN_IN_BROWSER:
        webbrowser.open("http://localhost:%s/" % xconfig.PORT)
    app.run()
Пример #7
0
def check_db():
    xtables.init()