thinker_g 2015-03-20 19:19:55 9799次浏览 1条评论 18 5 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一起开发,交流。

以上

觉得很赞
  • 评论于 2015-03-22 20:02 举报

    非常不错,很实用的扩展。

    1 条回复
    评论于 2015-03-25 10:58 回复

    忘了说,如果系统中已经存在邮件数据表,可以通过配置对应AR的属性整合这个扩展,使用已经存在的AR model。不是必须使用扩展生成的AR。

您需要登录后才可以评论。登录 | 立即注册