Равномерно распределите задачу за минуту, некоторые задачи будут выполняться несколько раз и должны иметь равное расстояPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Равномерно распределите задачу за минуту, некоторые задачи будут выполняться несколько раз и должны иметь равное расстоя

Сообщение Anonymous »

У меня есть файл конфигурации со списком сценария Bash, который должен выполнять times_per_min количество времени (ы) в течение 60 секунд.

Код: Выделить всё

tasks.yaml
:

Код: Выделить всё

every_minute:
- name: test0
path: test0.sh
times_per_min: 3
- name: test1
path: test1.sh
times_per_min: 2
< /code>
Мой код Python для импорта задач и их выполнения: < /p>
import subprocess
import time
import yaml

TASKS = []

with open("tasks.yaml") as file:
measurements = yaml.safe_load(file)

for every_min in measurements["every_minute"]:
for _ in range(every_min["times_per_min"]):
TASKS.append(every_min["path"])

interval = 60 / len(TASKS)

for task in TASKS:
try:
PROCESSES.append(subprocess.Popen([task]))
except Exception as e:
print("An error occured")
time.sleep(interval)
< /code>
В этом случае задачи будут выглядеть как: < /p>
print(TASKS)
['test0.sh', 'test0.sh', 'test0.sh', 'test1.sh', 'test1.sh']
< /code>
Что я хотел бы:
['test0.sh', 'test1.sh', 'test0.sh', 'test1.sh', 'test0.sh']

также отметьте, что я хочу, чтобы это распределение работало независимо от количества задач и значения Times_per_min ...

Подробнее здесь: https://stackoverflow.com/questions/794 ... es-and-sho
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»