CherryPy BackgroundTask
Мне нужен простой пример вызова cherrypy.process.plugins.BackgroundTask
,
Я попробовал это, но не могу заставить его работать (нет примеров в документации).
Вот мой код:
def func():
print "blah blah blah"
wd = cherrypy.process.plugins.BackgroundTask(15000,func)
wd.run()
1 ответ
Короткий ответ: вы хотите позвонить 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
явно установлен в конструкторах других плагинов, но не в этом классе). Я не думаю, что ошибка связана с моей неспособностью заставить это работать.