def each_req(url, workers):
sess = cycle(
[
"ASP_NET_SessionId=esofh14jmehe1cthhsjzfijf",
"ASP_NET_SessionId=dgfhjmehe1casdfhsjzfissz",
]
)
for _ in range(workers):
return url, next(sess)
tasks = [
"reqOne",
"reqTwo",
]
with concurrent.futures.ThreadPoolExecutor(max_workers=2) as executor:
future_to_url = {executor.submit(each_req, url, 1): url for url in tasks}
for future in concurrent.futures.as_completed(future_to_url):
print(future.result())
# > ('reqOne', 'ASP_NET_SessionId=esofh14jmehe1cthhsjzfijf'),
# ('reqTwo',ASP_NET_SessionId=esofh14jmehe1cthhsjzfijf')
Задача в том, что бы для каждого запроса была своя сессия, сейчас же для каждого запроса, выдаёт одну сессию.
P.S. Надо разбивать нагрузку по сессиям, т.е. при 2 запросах и 2 сессиях, каждая сессия используется 1 раз, тогда при 10 запросах и 5 сессиях, каждая сессия используется по 2 раза.
Таким образом снижается нагрузка, т.е. одна сессия(прокси) используется не 10 раз, а меньшее кол-во. Этакая имплементация алгоритма Round Robin.