小编Dav*_*itz的帖子

如何一次在python中发送异步http请求?

我们有一系列工作,工人一次处理这些工作.每个作业都要求我们格式化一些数据并发出HTTP POST请求,并将数据作为请求有效负载.

我们如何让每个工作人员以单线程,非阻塞方式异步发出这些HTTP POST请求?我们不关心请求的响应 - 我们想要的只是请求尽快执行,然后让工作人员立即进入下一个工作.

我们已经探索了使用geventgrequests库(请参阅为什么gevent.spawn在调用Greenlet.join之前不执行参数化函数?).我们的工作代码看起来像这样:

def execute_task(worker, job):

    print "About to spawn request"
    greenlet = gevent.spawn(requests.post, url, params=params)

    print "Request spawned, about to call sleep"
    gevent.sleep()

    print "Greenlet status: ", greenlet.ready()
Run Code Online (Sandbox Code Playgroud)

执行第一个print语句,但第二个和第三个打印语句永远不会打印,并且永远不会命中url.

我们如何才能执行这些异步请求?

python asynchronous gevent http-request

5
推荐指数
1
解决办法
2880
查看次数

标签 统计

asynchronous ×1

gevent ×1

http-request ×1

python ×1