cherrypy가 자체의 스레드 풀을 사용한다는 것을 읽었습니다. 그러나 나는 그것의 이점을 볼 수 없습니다.CherryPy에서 동시 요청을 처리하는 방법은 무엇입니까?
오랜 시간이 걸리는 요청을 시작한 다음 다른 탭에서 짧은 시간이 걸리는 요청을 시작합니다. 실제로 멀티 스레딩을 사용하는 경우에는 짧은 요청이 긴 요청 전에 완료되어야합니다. 그러나 모든 것이 순차적으로 처리되는 것처럼 긴 요청이 완료되면 짧은 시간이 먼저 처리되는 것을보고 있습니다.
토네이도 및 twistd와 같은 다른 uWSGI 프레임 워크와 통합을 시도했지만 여전히 차이점은 없습니다. 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)
안녕, 는 브라우저가 두 번째 탭에서 다른 연결을 사용하여 특정 있습니까? 첫 번째 메시지를 다시 사용하기 만하면 두 메시지를 순차적으로 처리합니다. –
글쎄, 당신이 말하는 것은 옳은 것 같습니다. 하지만 연결 수준이 아닌 요청 수준에서 동시성이 필요합니다. 세션을 사용하지 않도록 설정하는 것이 좋습니다. –
관련 상품 http://stackoverflow.com/questions/21758014/non-blocking-concurrent-wsgi-server – jwalker