[t:/]$ 지식_

파이썬 심플 웹서버

2019/01/02

https://kdecherf.com/blog/2012/07/29/multithreaded-python-simple-http-server/?fbclid=IwAR1_EYDGKDQrxMU8vb2OCP3PYITCJOrTeGyygDKwl3hH4OiKnMHxz9C3s5M

플라스크마저 쓰기가 귀찮아서 이걸 쓰고 있다.

파이썬을 계속 쓰고 있지만 여전히 쪼렙이다.

그래서 이 놈이 쓰레드 상속을 어케 받아서 어케 쓰는지 좀 의문이 들었다. 즉, 인스턴스 파괴가 언제 일어나는지가 궁금하여 __new____del__을 추적해보았다.

까봤더니 파이썬 자체 가비지컬렉션(?)에 의해 제대로 동작하는 듯 하다. 의심을 했던 부분은 리퀘스트마다 인스턴스가 생성되는 것 까지는 오케이인데, 이게 명시적으로 파괴되는 부분이 상속 받은 코드상으로는 알 수 없었기 때문에, 리퀘스트를 수백수천 받았을때 메모리 릭이 발생하지 않나 걱정했던 것.

즉, 이것만 가지고도 WAS 짤 수 있것다.

실질적으로 파이썬의 세계를 뒤져보고 있으면 컨테이너화 해서 1워커 1컨테이너로 퉁치는게 아름다워보이긴 하는데... 뭔가 찜찜하단..

내용 추가

위 구조는 어느정도 동접이 증가해도 커버를 잘 해준다. 단, 쓰레드 스포닝에 있어서 고부하(시간이 많이 걸리는) 생성자가 있다면 인스턴스 생성할 때 들어오는 요청을 튕기는 것 같다. 커넥션이 실패한다. 쓰레드 풀링이라면 이를 어느정도 극복할 수 있다.

http://code.activestate.com/recipes/574454-thread-pool-mixin-class-for-use-with-socketservert/

SO_REUSE_ADDR을 활용하고 있음을 주의









[t:/] is not "technology - root". dawnsea, rss