Tornado에는 동기 처리 프로세스를 변경하는 두 가지 방법이 있습니다.
비동기: 기본 동기화 메커니즘을 비동기 메커니즘으로 변경하려면 RequestHandler 처리 기능에 @tornado.web.asynchronous 데코레이터를 사용하세요. 이 방법은 만료되었습니다.
코루틴화: RequestHandler 처리 함수에 @tornado.gen.coroutine 데코레이터를 사용하여 기본 동기화 메커니즘을 코루틴 메커니즘으로 변경합니다.
1. 비동기식
이 메서드는 만료되었으므로 대신 @tornado.gen.coroutine을 사용하세요.
2. 코루틴화
Tornado 코루틴은 동기 처리와 비동기 처리의 장점을 결합하여 코드를 명확하고 이해하기 쉽게 만들고 대규모 클라이언트의 높은 동시 요청에 적응할 수 있습니다.
코드:
import tornado.web import tornado.httpclient from tornado.web import Application import tornado.ioloop class MainHandler(tornado.web.RequestHandler): @tornado.gen.coroutine def get(self): http=tornado.httpclient.AsyncHTTPClient() response=yield http.fetch("http://www.baidu.com") self.write(response.body) if __name__ == '__main__': app=Application([ ("/",MainHandler) ]) app.listen("8888") tornado.ioloop.IOLoop.current().start()
코루틴화의 핵심 기술 포인트는 다음과 같습니다.
tornado.gen.coroutine을 사용하여 MainHandler의 get(), post() 및 기타 처리 기능을 장식합니다.
이 예제에서는 AsyncHTTPClient와 같이 시간이 많이 걸리는 작업을 처리하려면 비동기 개체를 사용하세요.
Yield 키워드를 호출하여 비동기 객체의 처리 결과를 가져옵니다.
위 내용은 Python에서 Tornado 웹사이트 개발의 비동기식 및 코루틴화 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!