99
1010
1111def main ():
12- """ Пример работы с VkRequestsPool """
12+ """ Пример работы с VkRequestsPool
13+
14+ VkRequestsPool позволяет выполнять до 25 запросов к API за один запрос
15+ к серверу с помощю метода execute.
16+ """
1317
1418 login ,
password = '[email protected] ' ,
'mypassword' 1519 vk_session = vk_api .VkApi (login , password )
@@ -20,9 +24,24 @@ def main():
2024 print (error_msg )
2125 return
2226
27+ with vk_api .VkRequestsPool (vk_session ) as pool :
28+ friends = pool .method ('friends.get' )
29+ status = pool .method ('status.get' )
30+
31+ # Пример запроса с ошибкой
32+ request_with_error = pool .method ('wall.getById' )
33+
34+ """ Обратите внимание, что запрос выполняется после выхода из with
35+ и к результатам обратиться можно только после выхода из него
2336 """
24- Позволяет выполнять до 25 запросов к API за один запрос.
25- Работает через метод execute.
37+
38+ print (friends .result )
39+ print (status .result )
40+
41+ # False - поэтому нельзя обратиться к результату
42+ print (request_with_error .ok )
43+
44+ """ Пример получения друзей у нескольких пользователей за один запрос
2645 """
2746
2847 friends = {}
@@ -34,28 +53,30 @@ def main():
3453 'fields' : 'photo'
3554 })
3655
56+ for key , value in friends .items ():
57+ friends [key ] = value .result
58+
3759 print (friends )
3860
39- # Same result
40- with vk_api .VkRequestsPool (vk_session ) as pool :
41- friends = pool .method_one_param (
42- 'friends.get' ,
43- key = 'user_id' ,
44- default_values = {'fields' : 'photo' },
45- values = [1 , 183433824 ]
46- )
61+ """ Следующий пример оптимизированная версия предыдущего
4762
48- print (friends )
63+ В friends будет записан тот же самый результат, что и в прошлом примере.
64+ method_one_param можно использовать, когда запрос идет к одному методу,
65+ и когда изменяется только один параметр. В данном случае это 'user_id'
4966
67+ Плюс не нужно вызывать .result для каждого ключа
68+ """
5069 with vk_api .VkRequestsPool (vk_session ) as pool :
51- friends = pool .method ('friends.get' )
52- status = pool .method ('status.get' )
70+ friends = pool .method_one_param (
71+ 'friends.get' , # Метод
72+ key = 'user_id' , # Изменяющийся параметр
73+ values = [1 , 183433824 ],
5374
54- # Обратите внимание, что запрос выполняется после выхода из with
55- # и к результатам обратиться можно только после выхода из него
75+ # Параметры, которые будут в каждом запросе
76+ default_values = {'fields' : 'photo' }
77+ )
5678
57- print (friends )
58- print (status )
79+ print (friends .result )
5980
6081if __name__ == '__main__' :
6182 main ()
0 commit comments