在python中,使用多线程/线程/ect和requests库每秒进行许多rest api调用的最有效方法是什么?
我看了很多关于线程的最好的,最简单的,或者最酷的方法的帖子,但我什么也找不到。如果有人幸运地使用了不同的库,我非常愿意改变我的方法。
当前设置:使用线程、请求、队列。我在CSV中阅读,并将其转换为字典列表。然后,我将所有内容放入队列中,并限制线程的数量,但我发现,在不处理超时的情况下,我的速度受到限制。
考虑:我不希望我的请求超时,这比速度更重要。
当前原型:
def create_account():
while True:
account = q.get()
response = create_acct(account)
print response['acct_no']
log.append(response)
q.task_done()
input_file = 'testaccounts.csv'
concurrent = 15
q = Queue(concurrent * 2)
for i in range(concurrent):
t = Thread(target=create_account)
t.daemon = True
t.start()
try:
for account in create_account_list:
q.put(account)
q.join()
except KeyboardInterrupt:
sys.exit(1)发布于 2015-04-21 01:48:07
使用gevent +请求,即grequests是一种可能的解决方案。
https://stackoverflow.com/questions/29754783
复制相似问题