我需要一個調用cherrypy.process.plugins.BackgroundTask
的簡單示例。CherryPy BackgroundTask
我試過了,但似乎無法得到它的工作(在文檔中沒有例子)。
這裏是我的代碼:
def func():
print "blah blah blah"
wd = cherrypy.process.plugins.BackgroundTask(15000,func)
wd.run()
我需要一個調用cherrypy.process.plugins.BackgroundTask
的簡單示例。CherryPy BackgroundTask
我試過了,但似乎無法得到它的工作(在文檔中沒有例子)。
這裏是我的代碼:
def func():
print "blah blah blah"
wd = cherrypy.process.plugins.BackgroundTask(15000,func)
wd.run()
簡短的回答是,你要調用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
源,我看這似乎是一個錯誤 - 異常處理程序依賴於self.bus
屬性,它不存在(bus
明確設置在其他插件的構造函數中,但不是這個類)。我不認爲這個錯誤與我未能正常工作有關。
你錯過了什麼 - BackgroundTask需要秒爲參數,而不是毫秒。我只是想出來了!但是,您將獲得啓動未運行的複選標記以及其他詳細信息!謝謝。 – michael 2011-06-15 21:22:55
@marcusds,修正'15000'值使得代碼正確,但打破了對話:我說這不符合我的描述,michael解釋了爲什麼。您的修復會使該對話變得毫無意義,並要求我添加另一條評論來指出。上下文確實計數。 – 2015-03-31 19:14:06
這裏是接近現實世界的'BackgroundTask'使用示例:http://stackoverflow.com/a/27489635/2072035 – saaj 2014-12-15 17:30:14