本文只做自己学习笔记记录,如有涉及他人版权,请联系我第一时间修改删除
背景介绍:
当用户触发了某个操作后,发送短信消息给另外的一个或者多个人;如果用户量比较少,同时发送消息的人也比较少时,直接在触发操作完成时发送消息即可,但是如果同时发送消息的人非常多咋办?到时系统可能会一直卡在“消息正在发送中......” 这种状态,用户体验太差了。想到可以使用异步的方式,当用户触发操作完成后,把发送消息的任务放到后台执行。
放到后台执行,想到了两种解决方式:
1. Linux 下的 cron
每个触发发送消息的动作,统一将相关信息(接受人,消息内容等信息)保存到文件、内存或者数据库等其它可以持久化数据的地方,然后在服务器做一个定时任务,间隔读取文件、缓存(Redis, Memcahce)或者数据库中的信息,最后发送。但是服务器(Linux 服务器)的定时任务一般是每分钟执行一次;当然有解决方法,可以实现秒级发送,但是感觉不太好。弃用该方式。
2. 使用Swoole,不做过多解释,代码很简单:
Sw