一:队列场景
当我们使用某讯或者某浪的邮箱时,点击群发邮件之后,只需等待很短的时间,浏览器 提示提交成功,正在发送之类的信息时,用户就可以关掉浏览器,稍后,收件地址栏里的邮箱将陆续收到该群发邮件,再比如群发定时邮件,以及当商城系统中有客 户下单,客户,客服,仓库等相关人员收到订单邮件信息。诸如此类,队列的应用范围是如此之广。
二:普通工程师的解决方案和架构师的解决方案 方案1:建表存邮件,消息等,用定时程序取出发送。
方案2:抽象到更高一层,开发一套通用异步处理队列适用于任何复杂的业务逻辑 那么,作为架构师,使用队列的做法,将抽象层和业务层分离,可具有良好的扩展性和可维护性。相比较而言就高明了许多,
下面就我们介绍一下自定义队列的实现思路和方法。
三 :队列总体设计
1:需要队列程序,提供加入队列接口和取队列接口等 2:需要存储队列,文件或者数据库 3:需要定时程序取出队列并执行 4:其它扩展功能:优先级,日志,定时等
代码的目录结构如下,每个文件的作用用//注释来标明 |–addTask.php //添加任务到队列的例子 |–cronMission.php //定时任务调度程序,例如linux中受crontab
直接调用的文件,业务逻辑工程师可以在这个文件中灵活定义自己的队列任务,从而不用每个队列任务