задержка cronjob на основе вывода PHP - PullRequest
0 голосов
/ 09 сентября 2010

Я отвечаю за принтер, поэтому я написал скрипт, который запускается каждые 5 минут и выясняет, есть ли в принтере бумага. Если этого не произойдет, сценарий отправит мне сообщение. Проблема в том, что если я занят и не могу заполнить принтер, я не хочу, чтобы скрипт продолжал отправлять мне сообщения каждые 5 минут. Могу ли я заставить его отправлять мне не более одного текста каждые 8 ​​часов или около того, чтобы сценарий не отправлял мне текст дважды для одной и той же ситуации с отсутствием бумаги? Единственное, о чем я сейчас могу думать, - это создать базу данных, в которой я получаю тексты, а затем убедиться, что самый последний из них был не слишком давно, или создать локальный файл с самым последним временем в нем.

Спасибо!

Ответы [ 2 ]

3 голосов
/ 09 сентября 2010

Вам нужно где-то хранить тот факт, что в нем есть текст вас и когда это произошло в последний раз. Вы можете сделать это, используя обычный файл и прочитав дату изменения файлов, чтобы увидеть, когда текст был отправлен в последний раз, или вы можете использовать базу данных.

0 голосов
/ 10 сентября 2010

Предполагая, что скрипт, который отправляет СМС, - это PHP, используйте что-то вроде этого.Возможно, можно найти более чистый способ сделать это, но это просто, чтобы показать вам необходимую логику.

<?

/*
 * Replace outOfPaper() / sendSms() with the actual logic of your script
 */
$statusFile = './lastsms';

if(outOfPaper() && (is_file($statusFile) && (filemtime($statusFile) < time()-((8*60)*60)))){
    sendSms('+4412345678','Printer out of paper');
    touch($statusFile);
}

?>
...