Есть функция брута (перебора кода), которая запускает итерацию отдельной функцией
def checkCode(session, code, code_for_url, referer):
pass
def bruteCode(s, url_code, referer):
start_code = 110000
end_code = 111000
for code in range(start_code, end_code + 1):
s, success = checkCode(s, code, url_code, referer) # проверяем код
if success:
return code
Читаю
вот эту статью, где за основу хочу взять вот такой пример:
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(concurrency) as executor:
for _ in executor.map(upload, queryset):
pass
и не могу понять, как мне переделать свой for, чтобы checkCode запускать многопоточно.
допустим:
worker = 10
with ThreadPoolExecutor(worker) as executor:
# и дальше затык.
# 1. Как мне передать в executor.map свою checkCode c кучей параметров,
# но где будет постоянно меняться параметр code
# 2. Как мне указать диапазон?
# 3. В примере стоит в цикле pass, мне тоже нужно писать pass?
for code in range(start_code, end_code + 1):
s, success = checkCode(s, code, url_code, referer) # проверяем код
if success:
return code
С уважением.
p.s. в голове крутитятся какие-то yield, но я их никогда не использовал, а только когда-то читал вскользь и не понял толком применения. Если они нужны, то
напишите пример пожалуйста. (если примера нет, то лучше ничего не писать)