如何在烧瓶中使用问讯?

时间:2016-02-26 13:24:08

标签: python python-requests gevent greenlets

我正在与gunicorn工作人员和gevent进行Flask试验。在视图函数中,我需要向URL发出GET请求。以前,我正在使用requests库来做到这一点。但由于我想使用gevent worker,我相信我必须使它异步,所以我使用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

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

0 个答案:

没有答案