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 相关文章推荐
phplock(php进程锁) v1.0 beta1
Nov 24 PHP
PHPUnit PHP测试框架安装方法
Mar 23 PHP
destoon整合ucenter后注册页面不跳转的解决方法
Jun 21 PHP
PHP在网页中动态生成PDF文件详细教程
Jul 05 PHP
PHP中加密解密函数与DES加密解密实例
Oct 17 PHP
PHP图片处理之图片背景、画布操作
Nov 19 PHP
php限制文件下载速度的代码
Oct 20 PHP
php实现生成验证码实例分享
Apr 10 PHP
ThinkPHP自定义Redis处理SESSION的实现方法
May 16 PHP
php将html转为图片的实现方法
May 19 PHP
php + nginx项目中的权限详解
May 23 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
Sep 10 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
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
Yii2.0 Basic代码中路由链接被转义的处理方法
2016/09/21 PHP
PHP 微信扫码支付源代码(推荐)
2016/11/03 PHP
Zend Framework入门教程之Zend_Session会话操作详解
2016/12/08 PHP
PHP开发中csrf攻击的简单演示和防范
2017/05/07 PHP
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
jquery实现带复选框的表格行选中删除时高亮显示
2013/08/01 Javascript
简单的js表单验证函数
2013/10/28 Javascript
bootstrap网页框架的使用方法
2016/05/10 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
js登录滑动验证的实现(不滑动无法登陆)
2018/01/03 Javascript
JS中的事件委托实例浅析
2018/03/22 Javascript
Angular-UI Bootstrap组件实现警报功能
2018/07/16 Javascript
bootstrap-table formatter 使用vue组件的方法
2019/05/09 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
[01:07:02]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第三场 2月26日
2021/03/11 DOTA
举例详解Python中的split()函数的使用方法
2015/04/07 Python
用yum安装MySQLdb模块的步骤方法
2016/12/15 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
Python3生成手写体数字方法
2018/01/30 Python
python 检查文件mime类型的方法
2018/12/08 Python
Python进阶之@property动态属性的实现
2019/04/01 Python
Flask-WTF表单的使用方法
2019/07/12 Python
python selenium循环登陆网站的实现
2019/11/04 Python
Tensorflow与Keras自适应使用显存方式
2020/06/22 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
pycharm 添加解释器的方法步骤
2020/08/31 Python
详解HTML5 LocalStorage 本地存储
2016/12/23 HTML / CSS
班级活动策划书
2014/02/06 职场文书
物理系毕业生自荐书范文
2014/02/22 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
清洁工工作总结
2015/08/11 职场文书
python实现会员管理系统
2022/03/18 Python
vue本地构建热更新卡顿的问题“75 advanced module optimization”完美解决方案
2022/08/05 Vue.js