ETC

[gUnicorn 이슈] WORKER TIMEOUT 에러

zamezzz 2020. 12. 7. 16:23

이번 글에서는 간단하게 에러 발생 원인과 해결 방안에 대해서 정리해보겠습니다.

gUnicorn을 사용하여 Flask 서버를 구동 시 아래와 같은 에러가 발생하는 경우가 있습니다.

 

[CRITICAL] WORKER TIMEOUT (pid:00000)

 

제가 겪은 위 에러가 발생한 상황에 대해서 정리하자면 다음과 같습니다.

 

1. DB 또는 다른 서버와의 통신이 불가할 경우

해당 경우는 다른 DB 또는 서버와 통신이 불가하여 Connection Timeout이 발생하였고, 이로 인해 gUnicorn에서도

 

Timeout이 발생한 경우였습니다.

 

위의 경우 Timeout이 발생하는 서버와의 통신을 허용해주면 됩니다.

 

 

2. Flask 구동 전 수행되는 로직이 너무 오래 걸릴 경우

저의 환경에서 gUnicorn의 Timeout 설정 시간은 30초 였습니다.

 

하지만 아래의 경우와 같이 30초 보다 오래 걸리는 로직이 Flask 구동 전에 수행될 경우 위 에러가 발생했습니다.

test_method()
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=8080, use_reloader=False, debug=True)

test_method()의 로직이 30초 이상 걸린다면 gUnicorn의 Timeout이 발생합니다. 

그러므로 해당 로직과 같은 초기화 과정이 오래 걸린다면 해당 이슈가 발생할 수 있습니다.

 

그러므로 필요할 경우 gUnicorn의 Timeout 시간을 변경해줘야 합니다.

 

ex) 60초로 변경하고 싶다면 gUicorn 실행 시 다음과 같이 설정합니다.

--timeout=60

 

감사합니다.

반응형