我需要在 php/mysql 中编写自己的电子邮件调度程序。我正在使用亚马逊的 SES 发送电子邮件。我在“队列”MySQL 表中记录了需要通过电子邮件发送的人员和内容。成功发送电子邮件后,每条记录都会被删除。我想尽快发送这些电子邮件,但我需要牢记亚马逊的配额。他们限制您允许的电子邮件发送/秒。
我怎样才能安排这个不超过限制?我知道我可以编写一个 php cron 脚本,它只会从队列中提取 X 条记录并发送这些记录,但是如果我的 cron 每分钟只运行一次,就会浪费很多时间。(X 为配额限制/秒)
另一方面,如果我的电子邮件配额被撞到并且我可以每秒发送 1000 封邮件(或者一些荒谬的东西),如果我的脚本需要很长时间才能执行,我可能会遇到问题。cron 可能会再次触发并从 Queue 表中提取相同的记录。