簡體   English   中英

僅在腳本未運行時運行Cron

[英]Run Cron only if the script is not running

我有一個PHP腳本,該腳本一旦運行,它將檢查數據庫,然后運行一些URL循環(使用CURL刮擦站點)。 我希望該腳本每天24小時運行。 我目前每10分鍾使用cPanel的cron,但問題是,有時腳本需要花費10多分鍾,而cron試圖再次打開,這造成了很大的沖突。

我想要的是某種PHP服務或cron腳本,以僅在腳本未運行時運行該腳本。

您可以使用數據庫字段來控制抓取時間間隔並分配抓取狀態(例如“活動”,“完成”等),還可以使用鎖定文件,如下所示:

<pre>
// define name for lock
$lock_name = "/location/on/server/imworking.loc";

// exit script if lock file exists
if(  is_file( $lock_name  ) )  exit ( 'Lock file exists, lets exit here! );

// create new lock file before doing your things
$lock_file = fopen( $lock_name, "w" );
fwrite($lock_file , "working"); //this isn't really needed..
fclose($lock_file);


// do your stuff here, you can use try / catch statements as
// errors may prevent deleting lock file and so starting script again

//your stuff finished so let's remove lock file
unlink('/location/on/server/imworking.loc');
</pre>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM