Итак, у меня есть этот код ниже, который разбивает список идентификаторов в элементах x, затем перебирает их и делает кратным request.post
для URL (облачная функция Google), но он отправляет только последнюю полезную нагрузку.
from threading import Thread
from pprint import pprint
import logging
import requests
import os
import time
logging.basicConfig(level=logging.DEBUG,
format='(%(threadName)-10s) %(message)s',)
def worker(url, payload):
response = requests.post(url, json=payload)
pprint(payload)
response.headers['Content-Type'] = "application/json"
response.raise_for_status()
pprint(response.content.decode('UTF-8'))
def chunks(l, n):
"""Yield successive n-sized chunks from a list."""
for i in range(0, len(l), n):
yield l[i:i + n]
secret = 'sometoken'
recovery_url = 'https://some.cloudfuntion.url.here'
ids = [2018345610079096363, 2977875406043034415, 3271712161922849730, 419748955619930226,
5244962103551406903, 5803235572026782321, 7879812282087191078, 9098437513491289540]
payload = {
"message": secret,
"action": "DR",
"project": 'planar-depth-225211'
}
# LIMIT DR REQUESTS BY A SPECIFIC INT
limits = list(chunks(ids, 4))
for _ids in limits:
payload.update({"instances": _ids})
t = Thread(target=worker, args=(recovery_url, payload,))
t.start()
Выход:
(Thread-1 ) Starting new HTTPS connection (1): xxx.cloudfunctions.net:443
(Thread-2 ) Starting new HTTPS connection (1): xxx.cloudfunctions.net:443
(Thread-2 ) https:xxx.cloudfunctions.net:443 "POST /recovery HTTP/1.1" 200 21
'Recovery with Success'
'Recovery with Success'
(Thread-1 ) https://xxx.cloudfunctions.net:443 "POST /recovery HTTP/1.1" 200 21
Могу ли я составить первый запрос.пост, затем выполнить их?
Я не понимаю, почему публикуется только последняя сгенерированная полезная нагрузка.
Если вы проверите выходные данные из строки 13, вы увидите, что полезная нагрузка имеет такое же содержимое.
Спасибо