4

我正在尝试gunicorn使用gevent工人和Flask. 在视图函数中,我需要向 url 发出 GET 请求。以前,我使用requests库来做到这一点。但是由于我想使用 gevent 工作者,我相信我必须使其异步,所以我使用grequests库。

这是我的代码:

from gevent import monkey
monkey.patch_all()

import grequests
from flask import Flask
from flask import jsonify

pool = grequests.Pool()


@app.route('/<search_term>')
def find_result(search_term):
    return get_result(search_term) or ''


def get_result(search_term):
    request = grequests.get('https://www.google.com/search?q=' + search_term)
    job = grequests.send(request, pool=pool)
    async_resp = job.get()  # this blocks
    resp = async_resp.response
    if resp.status_code == 200:
        return resp.text

这是使用 grequests 的正确方法吗,因为我使用了阻塞job.get()?我想利用我遇到的问题是 IO 绑定的事实。

4

0 回答 0