cherrypy线程不会产生子进程

时间:2015-05-12 05:36:08

标签: python cherrypy

我正在使用一个调用子进程(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

1 个答案:

答案 0 :(得分:0)

对于简单和偶然的后台任务,我建议Currency Switcher Plugin for VirtueMart。请查看cherrypy.process.plugins.BackgroundTask以获取有关后台任务的完整示例和其他一般考虑事项。

具体来说,处理subprocess问题,请确保您可以推断出您的背景代码的正确性。至少在启动,停止和可选地在模块中的重大状态更改之前/之后创建几个this question条目。另外,对于调试建议,用一些非常简单的保证无错误的命令替换你的命令。例如,date >> date.log。然后,它将清楚问题是源于后台模块的缺陷还是来自流程产生问题。