2010-09-09 77 views
0

我负责打印机,所以我写了一个脚本,每5分钟运行一次,并确定打印机是否有纸。如果没有,脚本会给我发短信。问题是,如果我很忙,无法填充打印机,我不希望脚本每5分钟继续给我发短信。有没有办法强制它每隔8小时发送一次最多一个文本,以确保脚本不会在相同的缺纸情况下发短信两次?我现在唯一能想到的就是创建一个我获得文本的时间数据库,然后确保最近的一个文件不是很久以前,或者创建一个最新的本地文件。cronjob基于PHP输出延迟

谢谢!

回答

3

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

+0

-1:使用变量名会使系统在文件修改时间中已经存在的数据复杂化 – symcbean 2010-09-09 12:28:41

+0

@symcbean好点 - 编辑 – 2010-09-09 12:37:37

0

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

?>