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 相关文章推荐
Extended CHM PHP 语法手册之 DIY
Oct 09 PHP
以文本方式上传二进制文件的PHP程序
Oct 09 PHP
PHP的FTP学习(一)
Oct 09 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
Jun 13 PHP
PHP函数getenv简介和使用实例
May 12 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
Aug 23 PHP
php实现中文转数字
Feb 18 PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
Oct 11 PHP
PHP实现笛卡尔积算法的实例讲解
Dec 22 PHP
PHP时间类完整代码实例
Feb 26 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
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
通过隐藏option实现select的联动效果
2009/11/10 Javascript
js静态方法与实例方法分析
2011/07/04 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
网页编辑器ckeditor和ckfinder配置步骤分享
2012/05/24 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
详解AngularJS中的依赖注入机制
2015/06/17 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
jQuery基础知识点总结(必看)
2016/05/31 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
AngularJS封装指令方法详解
2016/12/12 Javascript
详解vue静态资源打包中的坑与解决方案
2018/02/05 Javascript
javascript数据结构之多叉树经典操作示例【创建、添加、遍历、移除等】
2018/08/01 Javascript
小程序scroll-view组件实现滚动的示例代码
2018/09/20 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
小程序实现短信登录倒计时
2019/07/12 Javascript
vue导航栏部分的动态渲染实例
2019/11/01 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
Python 流程控制实例代码
2009/09/25 Python
Linux下编译安装MySQL-Python教程
2015/02/02 Python
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
python妙用之编码的转换详解
2017/04/21 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
Python3之外部文件调用Django程序操作model等文件实现方式
2020/04/07 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
详解Python中的Lock和Rlock
2021/01/26 Python
Origins悦木之源香港官网:雅诗兰黛集团高端植物护肤品牌
2018/03/21 全球购物
美国厨房和园艺工具网上商店:Nestneed
2019/08/24 全球购物
Zooplus罗马尼亚:宠物食品和配件
2019/11/02 全球购物
六道php面试题附答案
2014/06/05 面试题
Java语言程序设计测试题选择题部分
2014/04/03 面试题
本科生职业生涯规划书范文
2014/01/21 职场文书
四风查摆问题及整改措施
2014/10/10 职场文书
幼儿园托班开学寄语(2015秋季)
2015/05/27 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书