gpt4 book ai didi

python - 增加每秒的请求量

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:53 25 4
gpt4 key购买 nike

我正在尝试增加每秒的请求量。我目前正在使用 python 2.7 并且每秒能够获得大约 1 个请求。我需要多线程/多进程函数还是异步运行函数的多个实例?我不知道如何进行这项工作。请帮助:-)

while True:
r = requests.post(url, allow_redirects=False, data={
str(formDataNameLogin): username,
str(formDataNamePass): password,
})

print 'Sending username: %s with password %s' % (username, password)

最佳答案

只需使用任何异步库即可。我认为请求的异步版本,例如 grequest , txrequests, requests-futures 和 requests-threads 最适合你。以下是 grequests 自述文件中的代码示例:

import grequests

urls = [
'http://www.heroku.com',
'http://python-tablib.org',
'http://httpbin.org',
'http://python-requests.org',
'http://fakedomain/',
'http://kennethreitz.com'
]

Create a set of unsent Requests:

rs = (grequests.get(u) for u in urls)

Send them all at the same time:

grequests.map(rs)

使用或学习其他提到的模块,比如请求线程,可能会涉及更多,尤其是 python 2

from twisted.internet.defer import inlineCallbacks
from twisted.internet.task import react
from requests_threads import AsyncSession

session = AsyncSession(n=100)

@inlineCallbacks
def main(reactor):
responses = []
for i in range(100):
responses.append(session.get('http://httpbin.org/get'))

for response in responses:
r = yield response
print(r)

if __name__ == '__main__':
react(main)

asyncioaiohttp可能更值得注意,但我想,学习一个已经熟悉的模块的版本会更容易。

多线程是不必要的,但你可以试试mutithreading或者,也许更好的是多处理,看看哪个表现最好。

关于python - 增加每秒的请求量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53086189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com