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 高手之路(三)
Oct 09 PHP
PHP安装攻略:常见问题解答(三)
Oct 09 PHP
一个自定义位数的php多用户计数器代码
Mar 11 PHP
PHP 数组入门教程小结
May 20 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
PHP Global变量定义当前页面的全局变量实现探讨
Jun 05 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
PHP实现无限极分类图文教程
Nov 25 PHP
php实现utf-8转unicode函数分享
Jan 06 PHP
Smarty保留变量用法分析
May 23 PHP
Laravel框架验证码类用法实例分析
Sep 11 PHP
PHP tp5中使用原生sql查询代码实例
Oct 28 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
adodb与adodb_lite之比较
2006/12/31 PHP
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php面象对象数据库操作类实例
2014/12/02 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
2019/03/07 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
PHP http请求超时问题解决方案
2020/11/13 PHP
Gambit vs CL BO3 第二场 2.13
2021/03/10 DOTA
网页里控制图片大小的相关代码
2006/06/25 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
jQuery中的编程范式详解
2014/12/15 Javascript
jQuery如何防止这种冒泡事件发生
2015/02/27 Javascript
浅谈addEventListener和attachEvent的区别
2016/07/14 Javascript
基于JavaScript实现本地图片预览
2017/02/08 Javascript
微信小程序 详解页面跳转与返回并回传数据
2017/02/13 Javascript
EsLint入门学习教程
2017/02/17 Javascript
jquery 手势密码插件
2017/03/17 Javascript
通过示例彻底搞懂js闭包
2017/08/10 Javascript
element ui 对话框el-dialog关闭事件详解
2018/02/26 Javascript
记录一篇关于redux-saga的基本使用过程
2018/08/18 Javascript
JavaScript中.min.js和.js文件的区别讲解
2019/02/13 Javascript
python的pip安装以及使用教程
2018/09/18 Python
使用python对文件中的单词进行提取的方法示例
2018/12/21 Python
python async with和async for的使用
2019/06/20 Python
Python使用qrcode二维码库生成二维码方法详解
2020/02/17 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
2020/11/28 Python
Sasa莎莎海外旗舰店:香港莎莎美妆平台
2018/03/21 全球购物
Rentalcars.com中国:世界上最大的在线汽车租赁服务
2019/08/22 全球购物
幼儿园国庆节活动方案
2014/02/01 职场文书
称象教学反思
2014/02/03 职场文书
商学院大学生求职的自我评价
2014/03/12 职场文书
地球物理学专业推荐信
2014/09/08 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript