CherryPy + PyWin32 应用
老版本的 cherrypy
# coding=cp936
import cherrypy
import win32serviceutil
import win32service
import win32event
class HelloWorld:
""" 请求句柄例子 """
# 暴露对象
@cherrypy.expose
def index(self):
# 只做测试用,所以只返回简单内容
return "Hello world!"
class MyService(win32serviceutil.ServiceFramework):
"""NT 服务"""
# 服务名
_svc_name_ = "CherryPyService"
# 服务显示名称
_svc_display_name_ = "CherryPy Service"
def __init__(self, args):
win32serviceutil.ServiceFramework.__init__(self, args)
# 创建一个事件
self.stop_event = win32event.CreateEvent(None, 0, 0, None)
def SvcDoRun(self):
cherrypy.root = HelloWorld()
# 更新配置,当使用配置文件时,必须为一个绝对路径
cherrypy.config.update({
'global':{
'server.socketPort' : 81,
'server.environment': 'production',
'server.logToScreen': False,
'server.log_file': 'e:\\edit\\log.txt',
'server.log_access_file': 'e:\\edit\\log.txt',
'autoreload.on' : False,
'server.logTracebacks' : True
}
})
# 设置 initOnly=True
cherrypy.server.start(initOnly=True)
win32event.WaitForSingleObject(self.stop_event, \
win32event.INFINITE)
def SvcStop(self):