原因:
最近開發的一個項目,由於有個更新job需要消耗的時間非常長,一度以為更新出現了錯誤。
經過:
於是打開debug模式測試, 異常開啟,調試發現system返回了
writing to a closed pipe/socket/fd (probably the client disconnected) !!!
異常返回IO write()異常了
具體信息如下:
uwsgi_response_writev_headers_and_body_do(): Broken pipe [core/writer.c line 296]
可以看出uwsgi的pipe broken掉了,因為只是接口,uwsgi default 60秒
所以其實是超時了uwsgi認為這個pipe client已經斷開,uwsgi還在run,當job超過了60秒,就把他干掉了。
解決:
修改uwsgin.ini,增加http-time設置即可
https://uwsgi-docs.readthedocs.io/en/latest/Options.html#http-timeout