基于PHP输出的cronjob延迟

时间:2010-09-09 07:21:57

标签: php scripting cron

我负责打印机,所以我写了一个每5分钟运行一次的脚本,并确定打印机是否有纸张。如果没有,脚本将发短信给我。问题是,如果我很忙,并且无法填写打印机,我不希望脚本每5分钟继续给我发短信。有没有办法我可以强制它每8小时左右只发送一次最多1个文本,以确保脚本不会在同一个纸外情况下给我发两次文字?我目前唯一能想到的就是创建一个我获取文本的时间数据库,然后确保最近的数据库不久以前,或创建一个最近时间的本地文件。< / p>

谢谢!

2 个答案:

答案 0 :(得分:3)

你需要在某处存储它有文本的事实以及最后一次发生的事实。您可以使用普通文件并通过读取文件修改日期来查看文本的上次发送时间,也可以使用数据库。

答案 1 :(得分:0)

假设发送SMS的脚本是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);
}

?>