Мультипроцессинг python
Всем привет. Нужна ваша помощь! У меня есть парсер-бот, который сначала получает данные с 3 источников, потом берет каждый элемент по очереди из LIST, взаимодействует с ним и полученными данными, делает проверку, выводит нужные и потом берет следующий элемент из LIST, когда закончатся элементы - делает снова запрос к 3 источникам и снова проверяет все эти элементы. Мне нужно, чтобы бот только один раз получил данные из requests, и потом в несколько процессов пошел проверять список LIST по этим данным. Как список закончился - снова один раз получил эти данные и пошел проверять список. Я пытался применять пул, но у меня совсем что-то не получилось. Буду очень благодарен за любой совет!
def requests():
a = session.get...
b = session.get...
c = session.get...
def main():
for item in LIST:
# берет элемент, обрабатывает его и отдает через yield
# этот элемент потом идет через много фильтров, если пройдет - выводится значение, если
нет - берется следующий элемент, который снова идет через фильтры
While True:
requests()
main()
UPD: нашел такое решение, очень простое и идеально для меня подходящее. a, b, c - это данные полученные с requests, которые идут аргументами в main вместе с итерируемым TOKENS.
if __name__ == '__main__':
session = requests.Session()
while True:
requests()
with multiprocessing.Pool(multiprocessing.cpu_count()) as pool:
pool.map(partial(main,a,b,c), TOKENS)