目标:实现一个模块化的、可重用的、面向对象的类或包,它将负责自动化用户通知的过程。正如我已经提到的,这些通知是根据一组规则在后台发送给多个用户的。
例如:每次一个新用户注册,并且定义了一条系统消息,并且每个超级用户有10个以上的活跃用户,那么这个系统消息就会发送给所有的用户。
这些“规则”可能会被实现为方法,或者内部带有 SQL 模型的子类。
环境:LAMP,PHP 5.3。首选的实现是 PHP。SendGrid 邮件递送服务 + 他们的官方 PHP 库。
实现(到目前为止我的想法):我考虑过使用 cronjob 或 Apache HTTP worker,问题是这个模型将负责系统的所有电子邮件通知,在这种情况下它必须运行每60秒左右,以确保按时同步交货。要添加或删除 cronjobs,我考虑过使用 PHP 的 exec() 或 system(),尽管我确信有更好的方法,也许直接使用文件函数编辑 cron 作业文件?
问题:任何实现都应该能够与 SendGrid 集成,因为这是我们当前使用的交付系统,并且已被证明是有效的。
这是系统的核心,所以它需要尽可能的防故障,并且具有自我诊断的能力,否则它不会有任何好处,最好直接发送那些电子邮件通知用户访问的页面,以及在加载时间、设计等方面的妥协。
有什么想法吗?,我在正确的方向吗?我一直在寻找已经在 github 和其他网络上实现的东西,但是没有什么能满足我的需要和要求。SendGrid 似乎也没有提供内置队列。
任何帮助深表感谢!。