簡體   English   中英

php cron 作業重疊

[英]php cron jobs overlapping

嗨,幾個月前我在 perl 中寫了一個腳本,用於檢查作業的重疊

use Fcntl ':flock';
INIT {
    my $waitcount=12; # possible attemtps to run script
    my $waitseconds=300; # wait for $waitseconds each attempt
    my $lockstatus=0;#no lock was attained
    while ($waitcount > 0){
          if (open LH, $0){
                while ($waitcount > 0){
                   if (flock LH, LOCK_EX|LOCK_NB){
                       $waitcount=0;#signal end of waiting
                       $lockstatus=1;#lock was attained
                   }
                   else{
                       --$waitcount;#decrement waitcount
                       print "waiting to be able to lock $0\n";
                       sleep $waitseconds;
                   }#end else
                }#end while
          }#end if
          else{
              --$waitcount;#decrement waitcount
              print "waiting to be able to open $0\n";
              sleep $waitseconds;
          }#end else
    }#end while
    if ($lockstatus == 0){
         die "no lock was attained\n";
    }#end if
}

我想知道我們是否可以在 php 中做類似的事情。

如何與運行 php 作業的一部分的當前 php 代碼集成?

當然可以。 您使用的唯一特定功能是“flock”,這在 php 中也可用(請參閱flock doc )。

其他步驟非常相似:

  • 將“我的”替換為“$”
  • 帶有 while(1) 循環的 init 塊
  • 有出口而死
  • 和 if 情況以 php 表示

暫無
暫無

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

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