parent
3b0a636f03
commit
1220717cd1
@ -0,0 +1,36 @@
|
||||
import subprocess
|
||||
import json
|
||||
import datetime
|
||||
import time
|
||||
import codecs
|
||||
|
||||
#Чтение конфигурации
|
||||
lDaemonConfigurationFile = codecs.open("robotDaemonConfiguration.json", "r","utf_8_sig")
|
||||
lDaemonConfigurationJSONString = lDaemonConfigurationFile.read()
|
||||
#Закрыть файловый объект
|
||||
lDaemonConfigurationFile.close()
|
||||
#Преобразование в JSON
|
||||
lDaemonConfigurationObject=json.loads(lDaemonConfigurationJSONString)
|
||||
|
||||
#Инициализация настроечных параметров
|
||||
lDaemonLoopSeconds=lDaemonConfigurationObject["loopSeconds"]
|
||||
lDaemonProcessCodeProcessDict={}
|
||||
lCurrentDateTime=datetime.datetime.now()
|
||||
#Вечный цикл
|
||||
while True:
|
||||
#Циклический обход правил
|
||||
for lItem in lDaemonConfigurationObject["activityList"]:
|
||||
#Определить вид активности
|
||||
if lItem["activityType"]=="processStart":
|
||||
#Вид активности - запуск процесса
|
||||
#Сформировать временной штамп, относительно которого надо будет проверять время
|
||||
#часовой пояс пока не учитываем
|
||||
lActivityDateTime=datetime.datetime.strptime(lItem["time"],"%H:%M")
|
||||
lActivityDateTime.replace(year=lCurrentDateTime.year,month=lCurrentDateTime.month,day=lCurrentDateTime.day)
|
||||
#Убедиться в том, что время наступило
|
||||
if lCurrentDateTime>=lActivityDateTime:
|
||||
#Выполнить операцию
|
||||
print("ProcessStart:"+lItem["processPath"])
|
||||
lDaemonProcessCodeProcessDict[lItem["processCode"]]=subprocess.Popen([lItem["processPath"],lItem["processArgs"]],stdin=subprocess.PIPE,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
|
||||
#Уснуть до следующего прогона
|
||||
time.sleep(lDaemonLoopSeconds)
|
Loading…
Reference in new issue