如何在 python 中同时执行批量请求?
How can I execute batches of requests simultaneously in python?
我正在使用 Reddit api 为一些 subreddits 投票。我想同时给多个 subreddits 投票,使用 praw
库与 reddit api.
交互
我想给 /r/bookclub 的 27 "hot" 和 "rising" 个帖子点赞:
subreddit = reddit.subreddit("bookclub")
for submission in subreddit.hot(limit=27):
submission.upvote()
for submission in subreddit.rising(limit=27):
submission.upvote()
我想使用异步或多处理来更快地执行此操作。我使用 grequests
库一次完成了所有 .upvote()
,到目前为止它工作正常,但我不确定它是否真的更好:
subreddit = reddit.subreddit("bookclub")
hot_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.hot(limit=27))
grequests.map(hot_upvotes)
rising_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.rising(limit=27))
grequests.map(rising_upvotes)
两个版本都支持 subreddit。我想知道的是,是否可以同时 运行 hot_upvotes
和 rising_upvotes
部分?
from threading import Thread
import functools
subreddit = reddit.subreddit("bookclub")
def run_hot_upvotes(subreddit):
hot_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.hot(limit=27))
grequests.map(hot_upvotes)
def run_rising_upvotes(subreddit):
rising_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.rising(limit=27))
grequests.map(rising_upvotes)
Thread(target = functools.partial(run_rising_upvotes, subreddit)).start()
Thread(target = functools.partial(run_hot_upvotes, subreddit)).start()
尝试以下操作让两者同时 运行,每个都在自己的线程中。
我正在使用 Reddit api 为一些 subreddits 投票。我想同时给多个 subreddits 投票,使用 praw
库与 reddit api.
我想给 /r/bookclub 的 27 "hot" 和 "rising" 个帖子点赞:
subreddit = reddit.subreddit("bookclub")
for submission in subreddit.hot(limit=27):
submission.upvote()
for submission in subreddit.rising(limit=27):
submission.upvote()
我想使用异步或多处理来更快地执行此操作。我使用 grequests
库一次完成了所有 .upvote()
,到目前为止它工作正常,但我不确定它是否真的更好:
subreddit = reddit.subreddit("bookclub")
hot_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.hot(limit=27))
grequests.map(hot_upvotes)
rising_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.rising(limit=27))
grequests.map(rising_upvotes)
两个版本都支持 subreddit。我想知道的是,是否可以同时 运行 hot_upvotes
和 rising_upvotes
部分?
from threading import Thread
import functools
subreddit = reddit.subreddit("bookclub")
def run_hot_upvotes(subreddit):
hot_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.hot(limit=27))
grequests.map(hot_upvotes)
def run_rising_upvotes(subreddit):
rising_upvotes = (grequests.get(submission.upvote()) for submission in subreddit.rising(limit=27))
grequests.map(rising_upvotes)
Thread(target = functools.partial(run_rising_upvotes, subreddit)).start()
Thread(target = functools.partial(run_hot_upvotes, subreddit)).start()
尝试以下操作让两者同时 运行,每个都在自己的线程中。