gevent-socketio - Python gevent和Queue的问题
PHP中文网
PHP中文网 2017-04-18 09:12:55
0
1
314

访问6个URL,怎么样才能开启两个gevent,当访问结束后,继续访问剩下的4个URL。
下面这段代码,访问两个URL后程序就结束了。

代码

# coding=utf-8

from gevent import monkey; monkey.patch_socket()
import gevent
import requests
import queue

q = queue.Queue()

def get_data(url):
    print('GET: %s' %url)
    resp = requests.get(url)
    data = resp.text
    print('%d bytes received from %s.' %(len(data), url))

q.put('http://www.baidu.com')
q.put('http://www.163.com')
q.put('http://www.sougou.com')
q.put('http://www.bing.com')
q.put('http://www.tudou.com')
q.put('http://www.v2ex.com')

gevent_list = []

for i in range(2):
    gevent_list.append(
        gevent.spawn(get_data, q.get_nowait())
    )

gevent.joinall(gevent_list)
PHP中文网
PHP中文网

认证高级PHP讲师

모든 응답(1)
黄舟

제가 직접 해결했습니다. get_data 메서드

로 대기열에서 가져와야 합니다. 으아악

아래 생성 시 매개변수를 전달할 필요가 없습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!