2010-09-09 57 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); 
} 

?>