cherrypy 线程不会产生子进程
cherrypy thread does not spawn subprocess
我有一个调用子进程 (subprocess.Popen) 的 cherrypy 应用程序,它大部分时间都工作正常,但有时它不起作用。当我重新启动服务器时,subprocess.popen 被调用并且工作正常。有没有办法在 cherrypy 中监视线程并检查为什么 subprocess.popen 没有被调用。
更新:
线程继续代码的其余部分,我可以响应,唯一的问题是子进程没有被调用
示例代码
def fn_test(self,**args):
#return args['md5'].split()[0]
final_html="the complete html"
for i in ['ab','cd','ef']:
if args.has_key(i):
cherrypy.session[i]='checked'
else:
cherrypy.session[i]=''
subprocess.Popen(["python","test.py",'test','aval','bval'])
return final_html
对于简单和偶尔的后台任务,我建议 cherrypy.process.plugins.BackgroundTask
. Take a look at this question 获取完整示例和其他有关后台任务的一般注意事项。
具体来说,处理subprocess
问题,确保你能推理出你的后台代码的正确性。至少在模块的启动、停止和可选的 before/after 显着状态更改时创建几个 logging
条目。同样为了调试,建议用一些非常简单的东西替换你的命令,保证没有错误。例如,date >> date.log
。那么问题是源于后台模块缺陷还是源于进程生成问题就很清楚了。
我有一个调用子进程 (subprocess.Popen) 的 cherrypy 应用程序,它大部分时间都工作正常,但有时它不起作用。当我重新启动服务器时,subprocess.popen 被调用并且工作正常。有没有办法在 cherrypy 中监视线程并检查为什么 subprocess.popen 没有被调用。
更新: 线程继续代码的其余部分,我可以响应,唯一的问题是子进程没有被调用
示例代码
def fn_test(self,**args):
#return args['md5'].split()[0]
final_html="the complete html"
for i in ['ab','cd','ef']:
if args.has_key(i):
cherrypy.session[i]='checked'
else:
cherrypy.session[i]=''
subprocess.Popen(["python","test.py",'test','aval','bval'])
return final_html
对于简单和偶尔的后台任务,我建议 cherrypy.process.plugins.BackgroundTask
. Take a look at this question 获取完整示例和其他有关后台任务的一般注意事项。
具体来说,处理subprocess
问题,确保你能推理出你的后台代码的正确性。至少在模块的启动、停止和可选的 before/after 显着状态更改时创建几个 logging
条目。同样为了调试,建议用一些非常简单的东西替换你的命令,保证没有错误。例如,date >> date.log
。那么问题是源于后台模块缺陷还是源于进程生成问题就很清楚了。