我读到 cherrypy 使用自己的线程池。但我看不到这样做的好处。
假设我触发了一个需要很长时间的请求,然后在另一个选项卡中我触发了一个需要很短时间的请求。如果它真的使用多线程,短请求应该在长请求之前完成。但我看到首先完成长请求,然后完成短时间,就好像所有事情都是按顺序处理的。
我尝试过与不同的 uWSGI 框架(如 Tornado 和 twistd)集成,但我仍然看不出有什么不同。 http://cherrypy.readthedocs.org/en/latest/deploy.html#tornado
这是我的入门代码。有人可以帮我吗?
cfg = {
'global' : {
'server.socket_host' : Utils.gflags.FLAGS.bind_addr,
'server.socket_port' : Utils.gflags.FLAGS.bind_port,
'server.thread_pool' : 10,
'engine.timeout_monitor.frequency' : gflags.FLAGS.request_time_out_secs,
},
'/static' : {"tools.sessions.on": False, 'tools.auth.on': False},
'/favicon.ico' : {"tools.sessions.on": False, 'tools.auth.on': False},
}
# To turn off the cherrypy errors on screen.
cfg['global'].update({'log.screen': False})
cfg['/static'].update({'tools.staticdir.on': True})
cfg['/static'].update({'tools.staticdir.dir': Utils.gflags.FLAGS.static_dir})
cfg['/favicon.ico'].update({'tools.staticfile.on': True})
cfg['/favicon.ico'].update({'tools.staticfile.filename':
Utils.gflags.FLAGS.favicon_file})
# Disable the auto reload on code change.
cherrypy.engine.autoreload.unsubscribe()
# Start the cherrypy
#Root() is defined somewhere else. Don't worry about that
cherrypy.quickstart(Root(), config = cfg)
我是一名优秀的程序员,十分优秀!