Код: Выделить всё
def process_payload(payload, url, headers):
response = requests.post(url, headers=headers, json=payload)
return response
def parallel_group2(payloads, url, headers):
with ThreadPoolExecutor() as executor:
results = executor.map(process_payload,payloads, [url]*len(payloads), [headers]*len(payloads))
return list(results)
def parallel_group(payloads, url, headers):
with ThreadPoolExecutor() as executor:
results = executor.map(requests.post, [url]*len(payloads), [headers]*len(payloads), payloads)
return list(results)
times = []
# payloads grouped by 15
payloads_grouped = [payloads[i:i+15] for i in range(0, len(payloads), 15)]
print( "shape of payloads_grouped", len(payloads_grouped), " x ", len(payloads_grouped[0]))
for i in range(3):
start = time.time()
with ThreadPoolExecutor() as executor:
# results = executor.map(parallel_group2, payloads_grouped, [url]*len(payloads_grouped), [headers]*len(payloads_grouped))
results = executor.map(parallel_group, payloads_grouped, [url]*len(payloads_grouped), [headers]*len(payloads_grouped))
end = time.time()
times.append(end-start)
print( "Durations of iterations:", times)
print( "Durations of iterations:", times)
print( "Average time for 150 requests:", sum(times)/len(times))
Код: Выделить всё
Durations of iterations: [5.246389389038086, 5.195073127746582, 5.278628587722778]
Average time for 150 requests: 5.2400303681691485
Код: Выделить всё
Durations of iterations: [10.99542498588562, 9.43007493019104, 23.003321170806885]
Average time for 150 requests: 10.142940362294516
Я запускал предыдущий код несколько раз, и результаты были стабильными.
Подробнее здесь: https://stackoverflow.com/questions/792 ... n-multithr