Настройка multiprocessing python 3.6

У меня есть долго работающий код, который я хочу ускорить за счет параллельного выполнения. По шагам:

  1. Загрузка архива с сервера по API
  2. Распаковка и извлечение необходимых файлов.
  3. Конвертация и обработка файлов.
  4. Публикация.

Так как без результата выполнения предыдущего процесса не может работать следующий, пришлось играться с time.sleep, но это под конкретный случай, так как количество архивов может быть разное. Помогите, пожалуйста, избавиться от time.sleep, чтобы он не прекращал процесс, пока не выполнится полностью предыдущий.

Код:

import sys
import glob, os
import datetime
import time
import multiprocessing
from multiprocessing import Process, Queue, Pool

start_time = time.time()

startDate = sys.argv[1]
finishDate = sys.argv[2]

os.system('python3 /var/www/html/algorithm/tiles/delete_all.py')

def step1():
    os.system('python3 /var/www/html/algorithm/tiles/download_all.py '+startDate+' '+finishDate)

def step2():
    time.sleep(300)
    os.system('python3 /var/www/html/algorithm/tiles/walk.py ')


def step3():
    time.sleep(500)
    os.system('python3 /var/www/html/algorithm/sentinel_gpgeo/public/walk.py ')


def step4():
    time.sleep(900)
    os.system('python3 /var/www/html/algorithm/sentinel_gpgeo/public/public.py ')
    
def main():
    p1 = Process(target=step1)
    p1.start()

    p2 = Process(target=step2)
    p2.start()

    p3 = Process(target=step3)
    p3.start()

    p4 = Process(target=step4)
    p4.start()


    p1.join()
    p2.join()
    p3.join()
    p4.join()


if __name__ == '__main__':
    main()

    

print("Number of cpu : ", multiprocessing.cpu_count())

os.system('python3 /var/www/html/algorithm/tiles/delete_all.py ')

print("--- %s seconds ---" % (time.time() - start_time))

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