Страница 1 из 2

Выполнение команд по расписанию

Добавлено: Ср янв 29, 2014 2:19 pm
Kod.Begemot
Добрый день!
Подскажите, как лучше реализовать выполнение определенных скриптов (команд?) по расписанию?
Мне нужно чтобы, к примеру, каждый будний день выполнялся скрипт включения теплого пола в ванной утром (5 часов) и скрипт выключения его через 3 часа. Скрипты я написал, опробовал - работают.
А вот куда их прописать - и куда прописать время и день недели запуска - я так и не понял.
Пробовал через "Задания" - работает, но только один раз - и "через N часов/минут... и т.п."
Пробовал через "Календарь - Добавить - Задача..." но там не нашел как указать время.
P.S. Прошу прощения, если вопрос "ламерский", но я только учусь :)

Re: Выполнение команд по расписанию

Добавлено: Ср янв 29, 2014 2:37 pm
Lewcom
Думаю в таймер-> onNewMinute можно организовать.

http://smartliving.ru/forum/viewtopic.p ... =386#p2381

Re: Выполнение команд по расписанию

Добавлено: Ср янв 29, 2014 2:53 pm
Anton_kulibin
В OnNewMinute Прописать проще некуда, у меня так включается подогрев в гараже.

Код: Выделить всё

if (timeIs("05:00")) {
 //Запуск любого метода или сценария
 }

Re: Выполнение команд по расписанию

Добавлено: Ср янв 29, 2014 3:58 pm
Kod.Begemot
Спасибо, уже понятнее :)
Попробовал -
if (timeIs("05:00")) {
...
}
работает отлично, теперь непонятно - где взять день недели...
в оригинале есть конструкция
"if (isWeekDay()) {
}
но не совсем понятно как использовать эту функцию..
конструкция
if (isWeekDay() <= 7) {
}
не работает :(

Re: Выполнение команд по расписанию

Добавлено: Ср янв 29, 2014 4:05 pm
Anton_kulibin
"if (isWeekDay()) {
}
Означает, что конструкция выполняется по рабочим дням недели (понедельник-пятница)
для выходных я делал
if (!(isWeekDay())) {
}
или просто
if (isWeekDay()) {
// код для рабочих дней
} else
{
//код для выходных суббота, воскресенье
}

Re: Выполнение команд по расписанию

Добавлено: Ср янв 29, 2014 5:18 pm
sergejey
еще как вариант использовать стандартную PHP-функцию date('w') которая возвращает число от 0 до 6 в зависимости от дня недели (воскресенье, понедельник, вторник и т.д. до субботы)
например:

Код: Выделить всё

if (date('w')==5) {
 say('Ура, пятница!');
}

Re: Выполнение команд по расписанию

Добавлено: Ср янв 29, 2014 8:11 pm
Kod.Begemot
Спасибо большое!
Сейчас буду пробовать :)

Re: Выполнение команд по расписанию

Добавлено: Чт фев 06, 2014 12:53 pm
Leks
Всем, привет!

Столкнулся с такой же задачей,
В результате появился модуль для выполнения задач по расписанию
Пока находится в длительном тестировании, но уже вполне работоспособен
Может кому еще пригодится - https://github.com/Leks-ha/Majordomo_sc ... job_module
Документация там же в pdf файле

Re: Выполнение команд по расписанию

Добавлено: Пт фев 07, 2014 12:33 pm
LutsenkoDenis
Хм, прикольно.
Чтобы я поменял....тиб таблиц в InnoDB с добавлением форенкея, чтобы не получилось так что job action в таблицу записался а job id нет.
И логирование или отправка на почту о том что что-то не выполнилось.

Ну и добавить в маркет приложений. Чтоб устанавливалось одним нажатием кнопки :)

Re: Выполнение команд по расписанию

Добавлено: Пт фев 07, 2014 3:45 pm
Leks
Согласен, без форинкея как-то не по феншую
Добавил отправку на стандартную почту PROJECT_BUGTRACK, мне казалось админская почта только тут настраивается, поправьте, если ошибаюсь

А вот с установкой в один клик вопрос, я не совсем понимаю как маркет дополнений выполняет SQL, необходимый для установки модуля,
в самом модуле(взять любой стандартный в поставке) есть метод dbInstall, но там я не видел, чтоб прописывались форинкеи

если кто знает, расскажите