우선, 저는 비동기 전문가가 아닙니다. 주제를 한 번 조사했습니다. IMHO XAMPP를 사용하는 경우 Apache가 각 요청에 대해 스레드/프로세스 (구성에 따라 다름)를 사용하기 때문에 긴 폴링을 수행 할 가능성이 없어집니다.
Tornado과 같은 비 차단 웹 서버는 두 개의 부분으로 분할 요청을 허용하며 두 번째 부분은 일부 이벤트에서 실행되지만 두 번째 부분에서는 인바운드 요청을 받아 들일 수 있습니다.
예 Tornado documentation/license /에서 :
class MainHandler(tornado.web.RequestHandler):
@tornado.web.asynchronous
def get(self):
http = tornado.httpclient.AsyncHTTPClient()
http.fetch("http://friendfeed-api.com/v2/feed/bret",
callback=self.async_callback(self.on_response))
def on_response(self, response):
if response.error: raise tornado.web.HTTPError(500)
json = tornado.escape.json_decode(response.body)
self.write("Fetched " + str(len(json["entries"])) + " entries "
"from the FriendFeed API")
self.finish()
- 지금까지의 내가이 아파치에서 가능하지 알고 -하는 가져 오기에 물론 블록의가 완료 될 때까지 요청 처리기의 일반적인 부분입니다 - 그래서 끝나는 것은 고정 된 스레드 또는 프로세스입니다.
파이썬에서 논 블로킹 서비스를 수행하는 또 다른 유명한 라이브러리는 Twisted입니다. 그러나 그것에 대해 많이 알지는 못하며 단지 하나의 스레드/프로세스로 많은 연결을 처리하는 데 도움을 줄 수 있습니다.
"아파치는 혜성에 적합하지 않고"PHP가 혜성에 적합하지 않습니다 "라고 말하는 것 같아요. – algorithmicCoder