[英]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
。 請看一下這個問題 ,以獲取有關后台任務的完整示例和其他一般注意事項。
具體來說,在處理subprocess
問題時,請確保可以推斷出背景代碼的正確性。 至少要在啟動,停止以及模塊中重要狀態更改之前/之后進行多個logging
條目。 另外,對於調試,建議使用真正簡單的東西替換您的命令,以確保沒有錯誤。 例如, date >> date.log
。 然后,可以清楚地確定問題是源自后台模塊的缺陷還是源自流程生成問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.