繁体   English   中英

python web服务器和定期任务

[英]python web server and periodic tasks

我正在使用CherryPy通过REST API接收请求。 除了处理请求之外,应用程序还应该每隔几秒进行一些资源管理。 最简单的方法是什么?

1)运行一个单独的线程

2)cherrypy.process.plugins.PerpetualTimer(不知道如何使用它,看起来资源很重?)

3)其他一些方式?

有一个单独的线程的解决方案对我来说很好,但我想知道是否有更好的方法来做到这一点?

请注意,CherryPy不是必需的 - 我决定使用它主要是因为项目看起来很活跃,因为它支持多个同时连接(换句话说:我对替代方案持开放态度)。

PerpetualTimer只是threading._Timer的重复版本。

你真正想要使用的是cherrypy.process.plugins.Monitor ,它不过是一种为你运行单独线程的方法。 你应该使用它,因为它插入cherrypy.engine,它控制CherryPy服务器的启动和停止行为。 如果你运行自己的线程,那么当CP关闭时你会想要停止它; Monitor类已经知道如何做到这一点。 它使用了PerpetualTimer,直到最近的版本,它被BackgroundTask类取代。

my_task_runner = Monitor(cherrypy.engine, my_task, frequency=3)
my_task_runner.subscribe()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM