Я пишу код для приложения, и у меня есть тяжелый для l oop, который делает несколько запросов GET для получения информации из inte rnet, а затем анализирует эту информацию. Это довольно медленно для последовательного for.
Есть ли способ распараллелить a for l oop в Python? В качестве альтернативы, имеет ли смысл использовать async / await для повышения производительности?
Основная функция.
def index():
following = current_user.following_list()
posts = []
[posts.extend(getPosts(fwd)) for fwd in following]
posts.sort(key=lambda x: x.timeStamp, reverse=True)
....
Функция, в которой происходит большая нагрузка:
def getPosts(account):
posts = []
rssFeed = feedparser.parse('{instance}{user}/rss'.format(instance=instance, user=account.username))
#Gather posts
if rssFeed.entries != []:
for post in rssFeed.entries:
newPost = Post()
newPost.username = rssFeed.feed.title.split("/")[0].replace(" ", "")
newPost.date = getTimeDiff(post.published_parsed)
newPost.timeStamp = datetime.datetime(*post.published_parsed[:6])
newPost.op = post.author
newPost.urlToPost = post.link
newPost.content = Markup(post.description)
posts.append(newPost)
return posts