gc5*_*gc5 4 python rest subprocess cherrypy
我有一个基于cherrypy构建的REST WebService.该服务与cherrypy.quickstart()呼叫联机.
我希望subprocess.Popen()在服务上线后立即启动后台进程.这个cherrypy.quickstart()电话是封锁的.如何添加回调以启动后台进程?
如果您的后台任务很简单且不受CPU限制,我建议您使用cherrypy.process.plugins.BackgroundTask.这是一个基于线程的解决方案.以下是完整示例的答案.
通常在CherryPy中,我们不传递回调来传递内部组件.相反,我们使用插件.CherryPy自己的组件,如会话数据到期或请求超时监视器,守护程序和PID编写器等,都是插件.插件的生命周期绑定到消息总线.FSM图说明了状态变化.在你的插件中,你只需要处理一些对你的任务有意义的状态.
O
|
V
STOPPING --> STOPPED --> EXITING -> X
A A |
| \___ |
| \ |
| V V
STARTED <-- STARTING
Run Code Online (Sandbox Code Playgroud)
这个答案有一个插件示例.另请参阅Sylvain Hellegouarch 使用CherryPy巴士管理您的流程.
| 归档时间: |
|
| 查看次数: |
1785 次 |
| 最近记录: |