Как ускорить работу скрипта на питоне?

У меня есть код который берет данные из базы о пользователе и выполняет определенный код, таких пользователей много, как сделать чтобы не по очереди перебирать пользователей а выполнять параллельно сразу для всех?

    while True:
        if Signal.objects.filter(status=False).count() > 0:
            orders = Signal.objects.filter(status=False)
            users = Users.objects.filter(subs_active=True)
            for user in users:
                 # some code

Ответы (1 шт):

Автор решения: eri

Если #some code ресурсоемкая часть, то замените for на

def worker(user):
    #some code
pool=multiprocessing.Pool(8)
pool.imap_unordered(worker, users)
pool.join()

И вызов каунт тут не нужен мне кажется.

Не сразу для всех, но одновременно 8. Не стоит перебарщивать с воркерами... В зависимости от самой нагрузки можно добавить внутри воркера асинхронность или треды.

→ Ссылка