我正在尝试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 绑定的事实。