PHP计划任务和消息队列使用

基于Linux和PHP,讲解定时任务和消息队列的使用,告诉你如何使用队列和定时任务应对大流量、长时间的任务处理

08-26 Mario      我在学 更新完毕 中级进阶

后端/PHP 160     0     1830

教程上线

8月26日

已更新完毕

9月5日

教程简介

定时任务和消息队列是各种后端中高级开发必不可少的技能,在PHP也一样,很多面试官也经常提问到相关的知识点。

消息队列,英文是Message Queue,简称MQ,我相信这个字眼在很多地方你应该看到过吧?队列的就是一种先进先出的数据结构,相当于把需要传输的数据放到一个地方,然后排队执行的意思,举个例子:如果需要给10000个会员每人发送1封网站改版上线的通知,那么后端程序如果直接发送,如果1封邮件需要发送1秒钟的话,全部发送完就是10000秒,相当于2.7个小时!!!也就是说要打开浏览器等待2.7个小时,这是不现实的,况且还只是1万用户,如果有100万呢?所以,这个时候,我们的队列就排上用场了!我们执行写入程序,就可以把需要发送的1万封邮件写入队列数据库,按顺序排队执行,一封一封的发送,也许需要2.7个小时发送完,也许更久,但不影响用户收到邮件,也不需要打开浏览器等待着发完。我们就只要知道最后发送完毕后,有多少封成功了、有多少封失败了、什么时候发送完成的、花了多长时间等等。由于我推送数据到队里的时候,推送完毕我就把浏览器关闭了,那么我怎么知道什么时候发送完呢?什么时候通知我发送完了,我可以放心了?这个时候就需要一个定时任务,可以定时的检测队列发送完毕没有?比如:我可用定时每1分钟检查一次队列发送完没有。

在很多时候,数据量一大,就要上消息队列了,它可以:
异步执行,减少用户等待时间:如:处理大图片,对于不是马上要看到结果的任务处理,都可以采用消息队列在后端用户看不见的地方慢慢执行;
还可以解耦:多个分系统之间如果开发语言不同,父系统可以通过队列的方式调用子系统推送过来的消息实现各个系统之间的交互对接;
削峰填谷:当用户请求过多时,可以排队执行,从而降低系统由于用户量暴增,瞬间产生的峰值。

本套课程,以Linux系统+PHP语言为基础,讲解定时任务和消息队列的使用,通过该套课程,告诉你如何使用队列和定时任务应对大流量、长时间的任务处理!

作者介绍
  • Mario

    Mario

    网络架构师

    8年技术OG,现任职摩天轮PHP架构师,热爱编程,精通PHP, Linux, Python, Go等语言
适宜人群
  • 本教程难度级别为3级(3/4)
  • 有一定PHP语言基础的PHP开发工程师、PHP爱好者
你会学到什么?
  • 消息队列和定时任务的使用
  • 高并发、大流量的请求处理
  • Crontab、Redis、Kafka、MySQL等在队列和定时任务中的使用
温馨提示
  1. 本教程为视频内容,共计 12 节;
  2. 教程的VIP会员在有效期内可以享受随时学习、沟通交流、下载素材、相关周边服务等;
  3. 教程已于 9月5日 更新完毕,后续我们可能会根据同学们的学习反馈进行内容的调优;
  4. 把教程加入到学习计划,关注“侠课岛”公众号(微信号:xkdedu)就可以在手机端学习哦,并且系统将自动为你的学习提供更多的智能的学习服务哦;
|
教程
粉丝
主页

签到有礼

已签到2天,连续签到7天即可领取7天全站VIP

  • 1
    +2 金币
  • 2
    +3 金币
  • 3
    +5 金币
  • 6
    +7 金币
  • 5
    +6 金币
  • 4
    暖心福利
    自选分类VIP ×1天
  • 7
    惊喜大礼

    自选分类VIP ×3天 +20金币
  • 持续签到 +8 金币

金币可以用来做什么?