Ну собственно говоря, уменя есть скрипт, который выполняет функцию ~каждый час. есть второй, который делает почти то же самое, но каждые ~3часа. оба они исполняются примерно от 5 до 10 минут в зависимости от производительности. я знаю, что делаю все не так и скорее всего должен быть более простой путь, но каждый раз когда они запускаются почти в одно и то же время(примерно раз в 3 часа соответственно). у меня выходит один из двух исходов. либо он задерживает исполнение второго файла, (ну то есть где то на пол часа) что не является приемлимым, либо он просто пропускает ту, которая запускается второй...
как я могу сделать так, чтобы при исполнении одного из скриптов второй как бы все еще вел отсчет, и по его окончанию встал в очередь на исполнение? я долго размышлял стоит ли вообще задавать вопрос, ибо считал, что я где то не догоняю, но в итоге после 10 часов размышлений я все таки сдесь зарегистрировался. любой ответ важен. заранее спасибо ответившим.
UPD
я еще погуглил и написал что-то вроде примера.
import time
import subprocess as sub
s1x= 0 #переменные, которые передаются в другой файл.py и возвращаются обратно для обозначения цикла
s2x= 0
def s1():
import s1_t #если я импортирую файл за пределами функции, то он сразу его исполняет
sub.call(['s1_t.py'])
def s2():
import s2_t
sub.call(['s2_t.py'])
print('how much s1?') #должно определяться количество повторов
x=int(input())
y=0
print('how much s2?')
c=int(input())
z=0
print('how much time between s1?') #время между повторами
t1=input()
print('how much time between s2?')
t2=input()
#if int(t1)==0:
while x>y:
timing1 = time.time() #я не могу вспомнить, что это. голова болит уже.
#по идее таймер1 и таймер2, которые должны работать один за другим
while True:
if time.time() - timing1 > int(t1):
timing1 = time.time()
if s1x>0:
y+=0
else:
s1()
y+=1
#if int(t2)==0:
while c>z:
timing2 = time.time()
while True:
if time.time() - timing2 > int(t2):
timing2 = time.time()
if s1x>0:
z+=0
else:
s2()
z+=1
На данный момент есть всего один ньюанс, который заключается в том, что оно не работает от слова совсем.
3 скрипта, один запускает 2 других. я не могу реализовать его до тех пор, пока не напишу для них общий таймер, который будет запускать один файл несколько раз по математической формуле. что наталкивает меня на мысль о том, что должен быть более простой путь (пробовал threading, subprocess, еще была какая то библиотека, но я уже забыл.)