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&mysql(四)
Oct 09 PHP
php PDO中文乱码解决办法
Jul 20 PHP
php下将图片以二进制存入mysql数据库中并显示的实现代码
May 27 PHP
提升PHP性能的21种方法介绍
Jun 25 PHP
回帖脱衣服的图片实现代码
Feb 15 PHP
php抽象类使用要点与注意事项分析
Feb 09 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
浅谈PHP中其他类型转化为Bool类型
Mar 28 PHP
一段实用的php验证码函数
May 19 PHP
PHP目录操作实例总结
Sep 27 PHP
在PHP中输出JS语句以及乱码问题的解决方案
Feb 13 PHP
PHP Trait代码复用类与多继承实现方法详解
Jun 17 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中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
PHP访问数据库集群的方法小结
2016/03/14 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
JQuery $.each遍历JavaScript数组对象实例
2014/09/01 Javascript
JavaScript字符串对象fromCharCode方法入门实例(用于把Unicode值转换为字符串)
2014/10/17 Javascript
JS运动框架之分享侧边栏动画实例
2015/03/03 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
jQuery可见性过滤器:hidden和:visibility用法实例
2015/06/24 Javascript
JavaScript代码性能优化总结篇
2016/05/15 Javascript
js实现一个可以兼容PC端和移动端的div拖动效果实例
2016/12/09 Javascript
jQuery ajax的功能实现方法详解
2017/01/06 Javascript
vue组件实例解析
2017/01/10 Javascript
vue引入swiper插件的使用实例
2017/07/19 Javascript
JS中的Replace()传入函数时的用法详解
2017/09/11 Javascript
React Native模块之Permissions权限申请的实例相机
2017/09/28 Javascript
vue项目中的webpack-dev-sever配置方法
2017/12/14 Javascript
ES6入门教程之Array.from()方法
2019/03/23 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
2019/07/28 Python
基于python 微信小程序之获取已存在模板消息列表
2019/08/05 Python
对python while循环和双重循环的实例详解
2019/08/23 Python
python对常见数据类型的遍历解析
2019/08/27 Python
python树的同构学习笔记
2019/09/14 Python
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
2014/03/31 HTML / CSS
室内设计自我鉴定
2013/10/15 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
中学生纪念九一八事变演讲稿
2014/09/14 职场文书
电子商务实训报告总结
2014/11/05 职场文书
银行安全保卫工作总结
2015/08/10 职场文书
给领导敬酒词
2015/08/12 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书
hive数据仓库新增字段方法
2022/06/25 数据库