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 相关文章推荐
跟我学小偷程序之成功偷取首页(第三天)
Oct 09 PHP
Php Mssql操作简单封装支持存储过程
Dec 11 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
PHP模块 Memcached功能多于Memcache
Jun 14 PHP
php实现mysql数据库操作类分享
Feb 14 PHP
PHP URL参数获取方式的四种例子
Feb 28 PHP
PHP goto语句简介和使用实例
Mar 11 PHP
thinkphp实现图片上传功能
Jan 13 PHP
PHP之将POST数据转化为字符串的实现代码
Nov 03 PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 PHP
win7 wamp 64位 php环境开启curl服务遇到的问题及解决方法
Sep 16 PHP
PHP使用phpunit进行单元测试示例
Sep 23 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读取IMAP邮件
2006/10/09 PHP
搜索和替换文件或目录的一个好类--很实用
2006/10/09 PHP
PHP删除HTMl标签的实现代码
2013/06/30 PHP
教你php如何实现验证码
2016/01/20 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
php获取ip及网址的简单方法(必看)
2017/04/01 PHP
PHP实现电商订单自动确认收货redis队列
2017/05/17 PHP
PHP使用HTML5 FormData对象提交表单操作示例
2019/07/02 PHP
获取Javscript执行函数名称的方法
2006/12/22 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
基于jQuery的星级评分插件
2011/08/12 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
css与javascript跨浏览器兼容性总结
2014/09/15 Javascript
JS实现简单的二维矩阵乘积运算
2016/01/26 Javascript
基于JS实现的笛卡尔乘积之商品发布
2016/05/13 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
Node.js Buffer用法解读
2018/05/18 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
微信小程序实现页面下拉刷新和上拉加载功能详解
2018/12/03 Javascript
python 自动提交和抓取网页
2009/07/13 Python
Django实现发送邮件功能
2019/07/18 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
pygame实现俄罗斯方块游戏(基础篇1)
2019/10/29 Python
通过实例解析Python调用json模块
2019/12/11 Python
pytorch中使用cuda扩展的实现示例
2020/02/12 Python
存储过程和函数的区别
2013/05/28 面试题
资产评估专业学生的自我鉴定
2013/11/14 职场文书
小学数学课后反思
2014/04/23 职场文书
学校开除通知书
2015/04/25 职场文书
保险公司增员口号
2015/12/25 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
Python中第三方库Faker的使用详解
2022/04/02 Python
win7配置本地ftp服务器的图文教程
2022/08/05 Servers