为了避免@jwalker所指内容的可能影响,您需要停止控制台日志记录(log.screen),这只在开发时有用。要实现这一点,可以设置apt CherryPy环境,如cherrypy.config.update({'environment': 'production'})。它总是更好地使用你的工具,而不是像@Isa建议的那样对抗它们。在
当你看到“左纺车”时,表示CherryPy已经收到你的请求,但目前无法处理。如果你像@Isa写的那样使用会话并发送并发请求,那么它可能是一个会话锁。但也有可能是你的Python应用程序使用CherryPy代理时会阻塞,而且由于CherryPy是一个线程服务器,因此可用的工作线程不足。在
不管是什么原因,您都可以利用日志来了解您的问题。查看访问和错误日志,以获得与您的请求对应的信息。当Python应用程序开始和结束处理请求时,记录一个条目。您也可以在CherryPy侧进行,例如:#!/usr/bin/env python
# -*- coding: utf-8 -*-
import time
import cherrypy
config = {
'global' : {
'server.socket_host' : '127.0.0.1',
'server.socket_port' : 8080,
'server.thread_pool' : 8,
'log.access_file' : 'access.log',
'log.error_file' : 'error.log',
}
}
def logStartFinish(fn):
def wrap(*args, **kwargs):
cherrypy.log('Start')
try:
return fn(*args, **kwargs)
finally:
cherrypy.log('Finish')
return wrap
class App:
@cherrypy.expose
@logStartFinish
def index(self):
time.sleep(4) # Call to Python app you wrap
return 'Some result'
if __name__ == '__main__':
cherrypy.config.update({'environment': 'production'})
cherrypy.quickstart(App(), '/', config)