> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 Tornado 웹사이트 개발의 비동기식 및 코루틴화 소개

Python에서 Tornado 웹사이트 개발의 비동기식 및 코루틴화 소개

不言
풀어 주다: 2018-10-19 17:22:26
앞으로
2511명이 탐색했습니다.
이 글은 Python을 이용한 Tornado 웹사이트의 비동기 및 코루틴 개발에 대해 소개합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:segmentfault.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿