Hermes Mailing 新鲜的多进程并行邮件队列发送方案 [ 2.0 版本 ]
Hermes Mailing 新鲜的多进程并行邮件队列发送方案,解决邮件群发问题,欢迎各位品尝
请使用 composer
下载到项目目录:
php composer.phar require "thinker-g/yii2-hermes-mailing:dev-master"
或访问 Github 项目主页 直接下载副本。
Hermes Mailing 是一个基于 yii2.0 framework 的多进程并行邮件发送方案。通过定时启动新进程,并发解决站点大批量邮件的发送问题。使用ActiveRecord表示邮件数据,能够方便地整合到任何yii2.0项目中。邮件发送对象使用yii Mailer接口,方便应用中适配各种邮件发送服务。
除基本发送功能外还提供以下可配置特性:
- 发送行为控制(间接控制内存和CPU资源消耗)
- 分布式部署
- 使用分离的专用数据库处理邮件(防止邮件过多影响在线事务库性能)
- 进程内抗垃圾邮件规则(防止被SMTP服务器视为垃圾邮件程序)
- 定制组件(根据不同需要替换程序内部组件)
- 事件支持(对邮件发送过程注入控制)
以下是两组使用默认参数的粗略测试数据,在两台主机上每10秒启动一个进程处理100,000封邮件,仅供参考:
(平台均为Linux环境,SMTP服务连接时间没有计入,由于不同服务连接时间不可控。)
- 我自己的本地PC (Ubuntu 14.04),数据库表未添加索引。
+---------------------+---------------------+-------------+
| first_sent | last_sent | process_num |
+---------------------+---------------------+-------------+
| 2015-03-18 12:37:01 | 2015-03-18 12:47:21 | 59 |
+---------------------+---------------------+-------------+
- 120M 可用内存的测试服务器 (CentOS 7) (本人穷请不要吐槽,囧)
+---------------------+---------------------+-------------+
| first_sent | last_sent | process_num |
+---------------------+---------------------+-------------+
| 2015-03-19 12:40:01 | 2015-03-19 12:56:38 | 100 |
+---------------------+---------------------+-------------+
Github主页有部署说明,其余特性文档正在完善中,大家可以暂时阅读代码注释进行针对不同环境的参数调整。
还有一些新特性会陆续添加,如果大家有好的建议,欢迎大家fork一起开发,交流。
以上
thinker_g
注册时间:2015-02-03
最后登录:2024-08-08
在线时长:12小时1分
最后登录:2024-08-08
在线时长:12小时1分
- 粉丝20
- 金钱835
- 威望25
- 积分1205
共 1 条评论
非常不错,很实用的扩展。
忘了说,如果系统中已经存在邮件数据表,可以通过配置对应AR的属性整合这个扩展,使用已经存在的AR model。不是必须使用扩展生成的AR。