php计划任务之验证是否有多个进程调用同一个job的方法


Posted in PHP onDecember 07, 2015

本文实例讲述了php计划任务之验证是否有多个进程调用同一个job的方法。分享给大家供大家参考,具体如下:

在使用计划任务的时候,公司有一次出现过2个进程跑同一个计划任务的情况,导致很多job都执行了2次,为了预防这种情况需要对linux的进程做一个限制,同一时间如果有进程在调用这个计划任务,那么就不允许另一个进程再进行调用了,下面是具体的代码。

// $pro 方法名字 
private function _verifyPsAux($pro)
{
  $arrProcess = array(
   $pro => "/usr/local/www/scrm/public/index.php /records/job/{$pro}"
  );
  $pidNumber = 0;
  foreach ($arrProcess as $key => $value) {
   exec("ps aux|grep '$key'", $return);
   $isRunning = false; // 指令未执行
   foreach ($return as $k => $v) {
    if(! strrpos($v, $value)) continue;
    // preg_match('/\d+:\d+ +\/usr/iu', $v, $match);
    // if (! isset($match[0])) continue;
    $isRunning = true;
    $pidNumber++;
   }
   // 如果当前进程存在,则终止
   if ($isRunning && $pidNumber > 1) {
    echo '[_' . date('Y-m-d H:i:s') . "_] 进程正在执行中\r\n";
    exit();
   }
  }
}

希望本文所述对大家php程序设计有所帮助。

PHP 相关文章推荐
透析PHP的配置文件php.ini
Oct 09 PHP
php 三维饼图的实现代码
Sep 28 PHP
PHP下通过系统信号量加锁方式获取递增序列ID
Sep 25 PHP
php 获取一个月第一天与最后一天的代码
May 16 PHP
php feof用来识别文件末尾字符的方法
Aug 01 PHP
注册页面之前先验证用户名是否存在的php代码
Jul 14 PHP
自己写的兼容低于PHP 5.5版本的array_column()函数
Oct 24 PHP
yii中widget的用法
Dec 03 PHP
Yii2实现上下联动下拉框功能的方法
Aug 10 PHP
Thinkphp5.0自动生成模块及目录的方法详解
Apr 17 PHP
Laravel框架分页实现方法分析
Jun 12 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
Aug 02 PHP
学习php设计模式 php实现建造者模式
Dec 07 #PHP
学习php设计模式 php实现访问者模式(Visitor)
Dec 07 #PHP
PHP面向对象详解(三)
Dec 07 #PHP
php生成高清缩略图实例详解
Dec 07 #PHP
php冒泡排序与快速排序实例详解
Dec 07 #PHP
PHP常用工具类大全附全部代码下载
Dec 07 #PHP
PHP+ajax分页实例简析
Dec 07 #PHP
You might like
如何使用脚本模仿登陆过程
2006/11/22 PHP
PHP下几种删除目录的方法总结
2007/08/19 PHP
分页详解 从此分页无忧(PHP+mysql)
2007/11/23 PHP
php json_encode奇怪问题说明
2011/09/27 PHP
从性能方面考虑PHP下载远程文件的3种方法
2015/12/29 PHP
基于PHP实现数据分页显示功能
2016/05/26 PHP
Yii2实现log输出到file及database的方法
2016/11/12 PHP
Yii框架扩展CGridView增加导出CSV功能的方法
2017/05/24 PHP
laravel实现查询最后执行的一条sql语句的方法
2019/10/09 PHP
jquery 图片 上一张 下一张 链接效果(续篇)
2010/04/20 Javascript
javascript对数组的常用操作代码 数组方法总汇
2011/01/27 Javascript
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
sso跨域写cookie的一段js脚本(推荐)
2016/05/25 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
Vue中添加过渡效果的方法
2017/03/16 Javascript
浅谈在vue项目中如何定义全局变量和全局函数
2017/10/24 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
微信小程序用户授权、位置授权及获取微信绑定手机号
2019/07/18 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
js实现鼠标拖拽div左右滑动
2020/01/15 Javascript
15个简单的JS编码标准让你的代码更整洁(小结)
2020/07/16 Javascript
python分割文件的常用方法
2014/11/01 Python
详解在Python中处理异常的教程
2015/05/24 Python
python实现可以断点续传和并发的ftp程序
2016/09/13 Python
基于ID3决策树算法的实现(Python版)
2017/05/31 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
I.T中国官网:精选时尚设计师单品网购平台
2018/03/26 全球购物
PHP开发工程师面试问题集锦
2012/11/01 面试题
夜大自我鉴定
2013/10/31 职场文书
数据员岗位职责
2013/11/19 职场文书
《宋庆龄故居的樟树》教学反思
2014/04/07 职场文书
开发房地产协议书
2014/09/14 职场文书
基于JavaScript实现年月日三级联动
2021/06/22 Javascript
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python