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 явно установлен в конструкторах других плагинов, но не в этом классе). Я не думаю, что ошибка связана с моей неспособностью заставить это работать.

Другие вопросы по тегам