Я использую cherrypy для создания веб-службы. Я наткнулся на плагин BackgroundTaskQueue, и я хочу использовать его для обработки конкретных трудоемких операций в отдельном потоке.Совместное использование объекта BackgroundTaskQueue объекта CherryPy между обработчиками запросов
В документации говорится использование должно быть примерно следующее:
import cherrypy
from complicated_logging import log
bgtask = BackgroundTaskQueue(cherrypy.engine)
bgtask.subscribe()
class Root(object):
def index(self):
bgtask.put(log, "index was called", ip=cherrypy.request.remote.ip))
return "Hello, world!"
index.exposed = True
Но, ИМХО, используя объект bgtask, как это не очень элегантно. Я бы хотел, чтобы обработчики из других модулей python использовали этот объект.
Есть ли способ подписаться на этот плагин один раз, а затем «поделиться» объектом bgtask среди других обработчиков (например, сохранить его в cherrypy.request
)?
Как это делается? Требуется ли вам написать вишневый инструмент?