Re: Управление циклами (сервисами)
Добавлено: Вт ноя 09, 2021 1:23 pm
Все то-же самое.
и посмотрите систем_стейтс. там в методе System.checkState был встроен механизм оперативного перезапуска цикловdenis писал(а): ↑Пн окт 09, 2023 9:06 amВсем добрый день!
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
Код: Выделить всё
$cycles = array('main'=>'главный цикл','execs'=>'цикл запуска команд','scheduler'=>'цикл планировщика');
foreach($cycles as $k=>$v) {
$tm = gg('cycle_'.$k.'Run');
if ($tm && time()-$tm > 2 * 60) {
$red_state = 1;
$details[] = $v." остановлен.";
sg('cycle_'.$k.'Run','');
sg('cycle_'.$k.'Control','restart');
}
}
Первое сообщение читал, как я понял этот код получает состояние цикла "остановлен". В моем же случае цикл не останавливается, соответственно приведенный код не сработает, т.к. цикл работает, у него состояние "работает не отвечает".
Вопрос: состояние цикла "остановлен" и состояние цикла "работает не отвечает" аналогичны?xor писал(а): ↑Пн окт 09, 2023 4:06 pmи посмотрите систем_стейтс. там в методе System.checkState был встроен механизм оперативного перезапуска цикловdenis писал(а): ↑Пн окт 09, 2023 9:06 amВсем добрый день!
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
не надо костылейdenis писал(а): ↑Пн окт 09, 2023 9:00 pmВопрос: состояние цикла "остановлен" и состояние цикла "работает не отвечает" аналогичны?xor писал(а): ↑Пн окт 09, 2023 4:06 pmи посмотрите систем_стейтс. там в методе System.checkState был встроен механизм оперативного перезапуска цикловdenis писал(а): ↑Пн окт 09, 2023 9:06 amВсем добрый день!
Не нашел в ветке и в поиске. Может есть способ получить статус цикла через getProperty или иным способом, если цикл находится в состоянии "не отвечает"?
У меня вентустановка Komfovent работает по modbus и иногда, вероятно, происходит зависание обмена. В результате цикл modbus переходит в состояние "не отвечает", хочу сделать перезапуск цикла из кода при наступлении такого события.
Автоматический перезапуск не происходит. В таком состоянии цикл сегодня провисел примерно час, затем заработал, вероятно таймаут запроса modbus закончился.
Есть идея как сделать "костыль", но хотелось получить состояние цикла, а после уже решать, что с ним делать.