我正在使用cherrypy 来构建Web 服务。我遇到了BackgroundTaskQueue插件,我想用它来处理单独线程上的特定耗时操作。
文档说明用法应如下所示:
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
)?
这是怎么做到的?这需要编写一个cherrypy工具吗?