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中文字母数字验证码实现代码
Apr 25 PHP
PHP写入WRITE编码为UTF8的文件的实现代码
Jul 07 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
php eval函数用法 PHP中eval()函数小技巧
Oct 31 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
PHP函数之日期时间函数date()使用详解
Sep 09 PHP
php通过exif_read_data函数获取图片的exif信息
May 21 PHP
PHP中文竖排转换实现方法
Oct 23 PHP
PHP设置头信息及取得返回头信息的方法
Jan 25 PHP
php抽奖概率算法(刮刮卡,大转盘)
Apr 17 PHP
PHP实现git部署的方法教程
Dec 19 PHP
PHP使用ActiveMQ实例
Feb 05 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
老照片 - 几十年前的收音机与人
2021/03/02 无线电
咖啡豆要不要放冰箱的原因
2021/03/04 冲泡冲煮
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
php遍历类中包含的所有元素的方法
2015/05/12 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
JavaScript排序算法动画演示效果的实现方法
2016/10/18 Javascript
bootstrapfileinput实现文件自动上传
2016/11/08 Javascript
Javascript中字符串相关常用的使用方法总结
2017/03/13 Javascript
js实现同一个页面,多个enter事件绑定的示例
2018/10/10 Javascript
vue动态配置模板 'component is'代码
2019/07/04 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
原生javascript自定义input[type=radio]效果示例
2019/08/27 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
[49:21]完美世界DOTA2联赛循环赛 Ink Ice vs LBZS BO2第二场 11.05
2020/11/06 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
用matplotlib画等高线图详解
2017/12/14 Python
python中字符串变二维数组的实例讲解
2018/04/03 Python
Python实现快速计算词频功能示例
2018/06/25 Python
python基于itchat模块实现微信防撤回
2019/04/29 Python
django框架创建应用操作示例
2019/09/26 Python
Python发送邮件的实例代码讲解
2019/10/16 Python
将pycharm配置为matlab或者spyder的用法说明
2020/06/08 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
公司口号大全
2014/06/11 职场文书
安全演讲稿开场白
2014/08/25 职场文书
实训报告范文大全
2014/11/04 职场文书
党性分析材料格式
2014/12/19 职场文书
中国合伙人观后感
2015/06/02 职场文书
Python调用腾讯API实现人脸身份证比对功能
2022/04/04 Python
python解析json数据
2022/04/29 Python
使用CSS实现黑白格背景效果
2022/06/01 HTML / CSS