CherryPy 背景任务
我需要一个简单的例子,来演示如何使用 cherrypy.process.plugins.BackgroundTask
。
我试过了,但好像没法让它正常工作(文档里没有例子)。
这是我的代码:
def func():
print "blah blah blah"
wd = cherrypy.process.plugins.BackgroundTask(15000,func)
wd.run()
1 个回答
3
简单来说,你应该调用 wd.start()
,而不是 wd.run()
。
另外,由于 BackgroundTask
是一个后台线程,如果你没有做其他事情来保持解释器运行,Python 会在你的线程在后台运行时退出,这样你就无法看到输出了。
话说回来,我一直在尝试制作一个可以正常工作的例子,但还没有成功。这是我正在使用的代码,可能不太好:
import cherrypy.process.plugins
def func():
print "blah blah blah"
wd = cherrypy.process.plugins.BackgroundTask(15, func)
wd.start()
raw_input() # hit return when you are bored
wd.cancel()
最后,看了一下 BackgroundTask
的源代码,我发现似乎有个bug——异常处理程序依赖于一个不存在的 self.bus
属性(bus
在其他插件的构造函数中被明确设置,但在这个类中没有)。我觉得这个bug和我没有成功运行这个代码没有关系。