簡體   English   中英

改進防止 php 腳本運行兩次(使用 cronjobs)

[英]Improve prevent php script run twice (with cronjobs)

我想改進下面的腳本,或者可能知道是否存在更好的重寫方法以獲得更好的結果。

我在兩個文件 cron1.php 和 cron2.php 上使用它,每 5 秒執行一次,並且需要防止運行兩次。

腳本執行時間取決於文件大小,大部分時間大約需要 2 秒,但對於大文件可能需要 25/30 秒,為此我需要停止執行。

我走對了嗎? 有什么改進的建議嗎?

$fp = fopen("cron.lock", "a+");
if (flock($fp, LOCK_EX | LOCK_NB))
{
  echo "task started\n";
  // Here is my long script
  // Cron run every 5 seconds
  sleep(2);

  flock($fp, LOCK_UN);
}
else
{
    echo "task already running\n";
    exit;
}
fclose($fp);

我通常會執行文件操作,例如將getmypid轉儲到鎖定文件中。 所以在外部我可以知道哪個 pid 鎖定了它。 在某些調試情況下,這很有幫助。 最后,完成后unlink鎖定文件。

暫無
暫無

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

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