Мне нужно загружать данные из 15 различных источников в пакетном режиме каждый вечер. Я хотел бы обрабатывать их параллельно, но только по 3 за раз, потому что база данных, которую я запрашиваю, отключает меня, если нагрузка на ресурс слишком высока.
import load_BW as BW
import load_CS as CS
import load_DM as DM
import load_ECG as ECG
import load_FA as FA
import load_FW as FW
import load_LB as LB
import load_MA as MA
import load_MI as MI
import load_OE as OE
import load_OM as OM
import load_PC as PC
import load_PP as PP
import load_TS as TS
import load_VS as VS
import multiprocessing
import RedShiftLoader as loader
import time
NUM_PROCESSES = 4
if __name__ == '__main__':
loader.flush_tables()
t1 = multiprocessing.Process(target=BW.process).start()
t2 = multiprocessing.Process(target=CS.process).start()
t3 = multiprocessing.Process(target=DM.process).start()
t4 = multiprocessing.Process(target=ECG.process).start()
t5 = multiprocessing.Process(target=FA.process).start()
t6 = multiprocessing.Process(target=FW.process).start()
t7 = multiprocessing.Process(target=LB.process).start()
t8 = multiprocessing.Process(target=MA.process).start()
t9 = multiprocessing.Process(target=MI.process).start()
t10 = multiprocessing.Process(target=OE.process).start()
t11 = multiprocessing.Process(target=OM.process).start()
t12 = multiprocessing.Process(target=PC.process).start()
t13 = multiprocessing.Process(target=PP.process).start()
t14 = multiprocessing.Process(target=TS.process).start()
t15 = multiprocessing.Process(target=VS.process).start()
Как мне сопоставить разнородные задания с пулом? Все примеры, которые я вижу в Интернете, показывают, что одно и то же задание выполняется параллельно.
def doubler(number):
return number * 2
pool = Pool(processes=3)
print(pool.map(doubler, numbers))