php - laravel中优雅的批量发送邮件或短信或站内信?
黄舟
黄舟 2017-04-11 09:48:54
[PHP讨论组]

我们知道发送邮件或短信可以添加到队列里进行异步任务 而不会因为延迟阻塞当前操作。

如果我们要给一万个用户发一封邮件,我需要把这1万个任务添加到队列里。
但是我如果程序中直接把一万个任务添加到队列,一次性循环或批量操作这样会阻塞当前操作,超时或者其他原因很容易出问题,你懂的。
所以我添加1万个任务到队列的这个操作也应该异步任务操作吧?,但是怎么做比较优雅?

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

全部回复(3)
迷茫

假设你的业务场景是:给站内所有会员发送通知邮件

那么你的任务队列本身的程序实现逻辑就是等待消息然后“获取所有会员邮箱,然后在一个任务中循环给所有会员发送通知邮件”(实际上应该还有更多的优化空间,比如支持区间的会员ID,规则的会员ID等等)

所以假设你后台有一个按钮是给所有会员发送通知,点击以后实际上只是给这个任务队列一个消息通知让他执行任务,而不是你点了那个按钮要获取所有会员邮箱,然后拆分成N个消息通知任务队列执行

怪我咯

你可以看看 pilishen 的laravel团队任务管理第三套 有讲 邮件发送的

迷茫

直接把
"添加1万个任务到队列并且发送"
添加到队列

队列消费者读取到这个消息后,插入1万个任务到队列,剩下的1万条任务的执行也是通过队列的

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号