Есть скрип:
from re import T
import time
import json
import python.cpu as cpu
import python.system as system
import python.docker as docker
from multiprocessing import Pool
__sleeps = {
'cpu_info': 1,
'system_info': 1,
'docker_info': 2,
}
def cpu_info():
cpu_info = cpu.info()
with open('./json/cpu.json', 'w') as file:
json.dump(cpu_info, file)
print('cpu_info')
time.sleep(__sleeps['cpu_info'])
def system_info():
system_info = system.info()
with open('./json/system.json', 'w') as file:
json.dump(system_info, file)
print('system_info')
time.sleep(__sleeps['system_info'])
def docker_info():
docker_info = docker.info()
with open('./json/docker.json', 'w') as file:
json.dump(docker_info, file)
print('docker_info')
time.sleep(__sleeps['docker_info'])
with Pool(5) as pool:
while True:
pool.apply_async(cpu_info)
pool.apply_async(system_info)
pool.apply_async(docker_info)
И вот вопрос, что я делаю не так? Задача в том, чтобы каждая из этих трёх функций (cpu_info, system_info, docker_info) работала параллельно. По пока получается так, что первые две (cpu_info и system_info) работают «нормально», но потом начинает выполняться docker_info (самая долго выполняющаяся) и все остальные её всё равно ждут.
В целом с программированием я знаком достаточно хорошо (более 7 лет работы в вебе, как на бэке, так и на фронте). Но вот питон начал плотно изучать недавно (до этого были мелкие скриптики, которые и за программирование нельзя считать). И тут же потребовалось погрузиться в параллельные вычисления.
Пробовал и через asyncio (пример кода врядли смогу предоставить) и через multiprocessing. Но пока ничего не помогло.