加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

介绍PHP使用gearman进行异步的邮件或短信发送操作

发布时间:2022-07-07 15:25:52 所属栏目:PHP教程 来源:互联网
导读:本文实例讲述了PHP使用gearman进行异步的邮件或短信发送操作。分享给大家供大家参考,具体如下: 一、准备工作 1、为了防止,处理业务途中出现的宕机,请配置好gearman的持久化方式。 2、使用gearmanManager来管理我们的worker脚本,方便测试。 二、编写测试
  本文实例讲述了PHP使用gearman进行异步的邮件或短信发送操作。分享给大家供大家参考,具体如下:
 
  一、准备工作
 
  1、为了防止,处理业务途中出现的宕机,请配置好gearman的持久化方式。
 
  2、使用gearmanManager来管理我们的worker脚本,方便测试。
 
  二、编写测试脚本
 
  sendEmail.php代码如下:
 
  <?php
   
  //注意函数名与文件名相同
   
  function sendEmail($job) {
   
    $workId = uniqid();
    
      
   
    echo "workId: {$workId} 发送 {$data['email']} 成功n";
   
  }
  client.php代码如下:
 
  <?php
   
  //创建一个客户端
   
  $client = new GearmanClient();
   
  //添加一个job服务
   
  $client->addServer('127.0.0.1', 4730);
   
   
   
  $cnt = 5000;
   
  $ret = array();
   
   
   
  //循环发送5000条邮件
   
  for($i = 0; $i < $cnt; ++$i) {
   
    //doBackground异步,返回提交任务的句柄
   
    $ret[$i] = $client->doBackground('sendEmail', json_encode(array(
   
      'email' => "{$i}@qq.com",
 
  添加如下信息,我们为sendEmail启动五个进程
 
  [sendEmail]
 
  ;指定5个进程
 
  dedicated_count=5
 
  ;5个进程都只做sendEmail工作
 
  dedicated_only=1
 
  四、启动gearman
 
  > gearmand -d -q mysql
   --mysql-table=gearman_queue &
  五、启动gearmanManager
 
  > cd /data/GearmanManager
 
  > ./bin/pecl_manager.php -c /data/GearmanManager/etc/GearmanManager.ini -vvv
 
  详解PHP使用gearman进行异步的邮件或短信发送操作
 
  六、运行client.php
 
  > /data/php56/bin/php /data/client.php
 
  详解PHP使用gearman进行异步的邮件或短信发送操作
 
  当我们对pecl_manager.php进行ctrl+c时,强行关闭worker,client.php那边仍可正常的发送请求,不过数据都被保存在了mysql中。
 
  当我们重新把worker启动时,gearman会重新载入没有处理的进行处理。
 
  详解PHP使用gearman进行异步的邮件或短信发送操作
 
  我的mysql是装在主机的,虚拟机里装了gearman,如果有朋友发现gearman无法连接mysql,可暂时关闭win10防火墙,和开启win10被ping的回显。

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读