예제 #1
0
def server():
    options.parse_command_line()
    init_logger(options.filename, options.level, options.maxSize,
                options.backupCount)
    if options.t:
        create_db.run()
    elif options.init:
        logger.info("准备疫情数据初始化")
        SariDataCollector(init=True).run()
        logger.info("疫情数据初始化完成")
    elif options.cache:
        logger.info("准备微信参数缓存")
        jsapi_ticket()
        logger.info("微信参数缓存完成")
    else:
        logger.info("启动疫情数据定时采集开始启动")
        timer = TaskTimer()
        timer.join_task(run, [], interval=timer_loop)
        timer.join_task(jsapi_ticket, [], interval=7100)
        timer.start()
        logger.info("启动疫情数据定时采集启动成功")
        app = make_app(None, log_func)
        http_Server = HTTPServer(app,
                                 max_buffer_size=504857600,
                                 max_body_size=504857600)
        http_Server.listen(sys_port)
        logger.info("==listen on port http://%s:%d ==", machine_ip(), sys_port)
        tornado.ioloop.IOLoop.instance().start()
예제 #2
0
def main():
    _auth_handlers = {
        "simple": SimpleLoginHandler,
        "openid": OpenIdLoginHandler,
        "github": GithubLoginHandler
    }

    parser = argparse.ArgumentParser(
        formatter_class=argparse.ArgumentDefaultsHelpFormatter)
    # yapf: disable
    parser.add_argument('-p', '--port', type=int,
                        default=4000, help='listen port')
    parser.add_argument('-d', '--debug', action='store_true',
                        help='open debug log, and open hot reload')
    parser.add_argument('--auth', type=str, default='simple',
                        choices=_auth_handlers.keys(), help='authentication method')
    parser.add_argument("--no-xheaders", action="store_true",
                        help="disable support for X-Real-Ip/X-Forwarded-For")
    parser.add_argument(
        '--auth-conf-file', type=argparse.FileType('r'), help='authentication config file')
    # yapf: enable

    args = parser.parse_args()
    print(args)
    enable_pretty_logging()

    db.setup()

    ioloop = tornado.ioloop.IOLoop.current()

    # TODO(ssx): for debug use
    # async def dbtest():
    #     items = await db.table("devices").get_all(
    #         limit=2, rsql_hook=lambda q: q.order_by(r.desc("createdAt")))
    #     for item in items:
    #         pprint(item)

    # ioloop.spawn_callback(dbtest)

    login_handler = _auth_handlers[args.auth]
    app = make_app(login_handler, debug=args.debug)
    server = HTTPServer(app, xheaders=not args.no_xheaders)
    server.listen(args.port)
    logger.info("listen on port http://%s:%d", machine_ip(), args.port)
    try:
        ioloop.start()
    except KeyboardInterrupt:
        ioloop.stop()
예제 #3
0
def server():
    options.parse_command_line()
    init_logger(options.filename, options.level, options.maxSize,
                options.backupCount)
    if options.t:
        create_db.run()
    elif options.init:
        logger.info("地区数据初始化")
        web.task.fetch_data()
        logger.info("地区数据初始化完成")
    else:
        app = make_app(None, log_func)
        http_Server = HTTPServer(app,
                                 max_buffer_size=504857600,
                                 max_body_size=504857600)
        http_Server.listen(sys_port)
        logger.info("==listen on port http://%s:%d ==", machine_ip(), sys_port)
        tornado.ioloop.IOLoop.instance().start()
예제 #4
0
def server():
    options.parse_command_line()
    init_logger(options.filename, options.level, options.maxSize,
                options.backupCount)
    if options.t:
        create_db.run()
    elif options.init:
        logger.info("准备疫情数据初始化")
        SariDataCollector(api=collector_init_url).run()
        logger.info("疫情数据初始化完成")
    else:
        logger.info("启动疫情数据定时采集开始启动")
        Collector = SariDataCollector()
        tornado.ioloop.PeriodicCallback(callback=Collector.run,
                                        callback_time=timer_loop).start()
        logger.info("启动疫情数据定时采集启动成功")
        app = make_app(None, log_func)
        http_Server = HTTPServer(app,
                                 max_buffer_size=504857600,
                                 max_body_size=504857600)
        http_Server.listen(sys_port)
        logger.info("==listen on port http://%s:%d ==", machine_ip(), sys_port)
        tornado.ioloop.IOLoop.instance().start()