def main():
    pool = Pool(5)
for result, error in pool.imap_unordered(db_task, list(sources.items())):
    if error is None:
        print(result)
if __name__ == '__main__':
    main()
Подбор предметов постепенно, как только появится очередь