CherryPy具有用于自定义作业的其他线程

Chr*_*zmo 12 python multithreading daemon cherrypy

我们正在设计一个基于CherryPy的系统,除了提供Web请求外,还需要并行执行任务/作业.我们希望它是作为守护进程运行的单个进程,并为所有并行作业(如计划任务或在线收集数据)创建线程.

我一直在浏览CherryPy文档,并知道它是为所有用户请求创建线程的线程池.但是,我似乎无法找到有关如何为自定义作业创建和管理线程的文档.CherryPy是否有一个我们可以挂钩的线程处理程序,或者我们应该编写我们自己的挂钩到CherryPy的处理程序吗?

fum*_*chu 14

订阅Monitor实例:

from cherrypy.process.plugins import Monitor

def foo():
    my.store.collect_data('things', 'stuff')

Monitor(cherrypy.engine, foo, frequency=300).subscribe()
Run Code Online (Sandbox Code Playgroud)

这将foo在其自己的线程中每300秒运行一次该函数,该线程将在您调用engine.start时启动并在您调用时停止engine.stop(或在进程退出时).