очередь заданий.
Модератор: immortal
-
- Сообщения: 16
- Зарегистрирован: Ср ноя 13, 2013 9:46 pm
- Благодарил (а): 5 раз
- Поблагодарили: 0
очередь заданий.
где-то можно настроить интервал(паузу между заданиями) с которым будут выполняться задачи запущенные с помощью safe_exec ? работаю с noolite. Если в короткий промежуток запустить несколько заданий то часть из них просто не отработает, т.к. usb брелок занят предыдущей задачей. Поэтому хочу задать минимальный интервал между заданиями safe_exec.
-
- Сообщения: 256
- Зарегистрирован: Сб янв 11, 2014 2:54 pm
- Благодарил (а): 12 раз
- Поблагодарили: 14 раз
Re: очередь заданий.
используйте 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);
вот мой скрипт выключения всего освещения
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);
- Amarok
- Сообщения: 1427
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: очередь заданий.
А разве sleep не "усыпляет" ВСЮ систему?
Моя Алиска живёт на Proxmox в Debian 12
- sergejey
- Site Admin
- Сообщения: 4286
- Зарегистрирован: Пн сен 05, 2011 6:48 pm
- Откуда: Минск, Беларусь
- Благодарил (а): 76 раз
- Поблагодарили: 1559 раз
- Контактная информация:
Re: очередь заданий.
посмотрите у меня в коннекте в классах 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);
}
- Рейтинг: 1.16%
Сергей Джейгало, разработчик MajorDoMo
Идеи, ошибки -- за предложениями по исправлению и развитию слежу только здесь!
Профиль Connect -- информация, сотрудничество, услуги