Страница 1 из 1
очередь заданий.
Добавлено: Чт мар 12, 2015 4:17 am
kylich
где-то можно настроить интервал(паузу между заданиями) с которым будут выполняться задачи запущенные с помощью safe_exec ? работаю с noolite. Если в короткий промежуток запустить несколько заданий то часть из них просто не отработает, т.к. usb брелок занят предыдущей задачей. Поэтому хочу задать минимальный интервал между заданиями safe_exec.
Re: очередь заданий.
Добавлено: Чт мар 12, 2015 6:19 am
I_I_Imonder
используйте sleep
вот мой скрипт выключения всего освещения
safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -off_ch1');
sg('bedroom.status',0);
sleep(1);
safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -off_ch2');
sg('bedroom_rgb.status',0);
sleep(1);
safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -off_ch3');
sg('Kabinet.status',0);
sleep(1);
safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -off_ch4');
sg('Kitchen.status',0);
sleep(1);
safe_exec('"c:\Program Files\nooLite\noolite.exe" -api -off_ch5');
sg('Priho.status',0);
Re: очередь заданий.
Добавлено: Чт мар 12, 2015 10:09 am
Amarok
А разве sleep не "усыпляет" ВСЮ систему?
Re: очередь заданий.
Добавлено: Чт мар 12, 2015 10:36 am
sergejey
посмотрите у меня в коннекте в классах Relays -> Noolite -> метод sendCommand
Код: Выделить всё
$cmdline='"c:\Program Files\nooLite\nooLiteCMD.exe" -api '.$params['command'];
$last_called=gg('NoolightCommandSend');
$min_delay=1;
$now=time();
if (($now-$last_called)>$min_delay) {
$last_callled=$now;
sg('NoolightCommandSend',$last_called);
DebMes("Noolite instant exec: ".$cmdline);
system($cmdline);
} else {
if ($last_callled<$now) {
$last_callled=$now;
}
$last_called+=$min_delay;
sg('NoolightCommandSend',$last_called);
AddScheduledJob("noolight".md5($cmdline),"safe_exec('".$cmdline."');",$last_called);
}
Смысл такой -- если последний раз команда запускалась давно (больше секунды назад), то выполнять её сразу. Если недавно, то планировать на будущее.
Re: очередь заданий.
Добавлено: Чт мар 12, 2015 2:00 pm
kylich
Спасибо. Переделаю метод по вашему образу.