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 相关文章推荐
[FAQ]PHP中的一些常识:类篇
Oct 09 PHP
一个程序下载的管理程序(四)
Oct 09 PHP
PHP中的类-什么叫类
Nov 20 PHP
php中看实例学正则表达式
Dec 25 PHP
从一个不错的留言本弄的mysql数据库操作类
Sep 02 PHP
PHP学习 运算符与运算符优先级
Jun 15 PHP
ThinkPHP自定义函数解决模板标签加减运算的方法
Jul 03 PHP
利用php抓取蜘蛛爬虫痕迹的示例代码
Sep 30 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
thinkPHP5框架设置404、403等http状态页面的方法
Jun 05 PHP
CI框架附属类用法分析
Dec 26 PHP
PHP类的自动加载机制实现方法分析
Jan 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
删除无限级目录与文件代码共享
2006/07/12 PHP
php session 检测和注销
2009/03/16 PHP
PHP常用编译参数中文说明
2014/09/27 PHP
浅谈php中curl、fsockopen的应用
2016/12/10 PHP
IOS 开发之NSDictionary转换成JSON字符串
2017/08/14 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
javascript showModalDialog 多层模态窗口实现页面提交及刷新的代码
2009/11/28 Javascript
js传参数受特殊字符影响错误的解决方法
2013/10/21 Javascript
JavaScript中对象property的读取和写入方法介绍
2014/12/30 Javascript
jquery手风琴特效插件
2015/02/04 Javascript
javascript字符串与数组转换汇总
2015/05/26 Javascript
js实现分割上传大文件
2016/03/09 Javascript
JavaScript使用forEach()与jQuery使用each遍历数组时return false 的区别
2016/08/26 Javascript
angular和BootStrap3实现购物车功能
2017/01/25 Javascript
JS html时钟制作代码分享
2017/03/03 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
Vue中props的使用详解
2018/06/15 Javascript
解决echarts的多个折现数据出现坐标和值对不上的问题
2018/12/28 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
vue遍历生成的输入框 绑定及修改值示例
2019/10/30 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
BootStrap前端框架使用方法详解
2020/02/26 Javascript
vue tab滚动到一定高度,固定在顶部,点击tab切换不同的内容操作
2020/07/22 Javascript
代码分析Python地图坐标转换
2018/02/08 Python
unittest+coverage单元测试代码覆盖操作实例详解
2018/04/04 Python
python读取xml文件方法解析
2020/08/04 Python
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
定制iPhone和Macbook保护壳:Slick Case
2018/11/21 全球购物
教育局长自荐信范文
2013/12/22 职场文书
小学学校评估方案
2014/06/08 职场文书
nginx 反向代理之 proxy_pass的实现
2021/03/31 Servers
Go语言中的UTF-8实现
2021/04/26 Golang
如何使用分区处理MySQL的亿级数据优化
2021/06/18 MySQL
mysq启动失败问题及场景分析
2021/07/15 MySQL
教你修复 Win11应用商店加载空白问题
2021/12/06 数码科技