PHP进程同步代码例子
发布时间:2022-07-27 13:20 所属栏目:121 来源:互联网
导读:这篇文章主要介绍了PHP进程同步代码实例,本文直接给出实现代码,需要的朋友可以参考下 经常遇到这样一种情况,计划任务定时后台执行某个php程序,有时候也需要手动执行,可能多个人都需要执行这个程序,如果任务持续时间非常长,就很容易造成重复执行,所以就
这篇文章主要介绍了PHP进程同步代码实例,本文直接给出实现代码,需要的朋友可以参考下 经常遇到这样一种情况,计划任务定时后台执行某个php程序,有时候也需要手动执行,可能多个人都需要执行这个程序,如果任务持续时间非常长,就很容易造成重复执行,所以就开发了下面的类。 作用:在实际代码运行前检查与当前相同操作的进程是否正在运行,高并发运行是可靠的,运行中的进程中途异常中断不会产生任何影响。 构造方法传递pid文件目录的绝对路径,需要自己保证不同进程对应不同pid文件。 代码如下: <?php /* * 同一个PHP进程只运行一次,根据进程名字判断是否为排重进程,只能运行于linux,高并发条件下是并发安全的。 */ class SyncProcess { private $pidFile; } flock($f, LOCK_UN); fclose($f); return $running; } else { debug_print("pid file($pidFile) is invalid", E_USER_WARNING); } } else { debug_print("pid file cant't be empty", E_USER_WARNING); } } else { debug_print(__CLASS__ . ' can only run in Linux', E_USER_WARNING); return true; } } /** * 如果正在运行或者发生未知错误返回true,如果没有运行返回false 代码如下: $sync = new SyncProcess(APP_PATH . '/data/pid'.implode('', $this->getRoute())); if ($sync->check()) { exit("process is running/n"); }。 (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读