Мультипроцессинг python

Мультипроцессинг 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)


Report Page