老雷PHP教程之队列任务

老雷PHP全栈开发

共 440字,需浏览 1分钟

 ·

2020-12-30 08:09

老雷PHP教程之队列任务

一、什么是队列任务

    就是按照队列来执行任务,按照先进先出原则执行任务,通过异步执行提升用户体验。

二、实现步骤,以订单为例。

    1、发布任务

            用户下完单之后,可能需要短信通知商家,或者通知打印机打印订单。

    2、获取任务

            任务系统获取任务,然后分发给不同任务处理程序去执行。

    3、执行任务

        具体任务处理程序,接收来自队列任务的委派,然后执行,如果执行出错,判断是重新入队执行还是通知系统出现异常。

三、任务要常驻执行

    执行任务的程序不能间断

    windows系统 cmd 执行 php task.php 

    linux系统 php task.php & 

require "file.php";$que=new queue();$task=$que->rpop();
if(empty($task)){ echo "任务执行完了";}switch($task["action"]){ case "sendSms": $res=sendSms($que,$task); break; default: echo "执行任务"; break;}
function sendSms($que,$task){ $conf=$task["data"]; $res=rand(0,1); if(!isset($task["enum"])){ $task["enum"]=1; } if(!$res){ echo "执行任务出错,出错".$task["enum"]."次"; }else{ echo "给".$conf["telephone"]."发送了一条短息".$conf["content"]; } if($res==false ){ if($task["enum"]<3){ $task["enum"]++; $que->rpush($task); }else{ echo " 已将错误反馈给站长"; } } }


课后作业:

 大家去动手操作队列任务


浏览 35
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报