Php 批量通过电子邮件发送mysql表设置?

Php 批量通过电子邮件发送mysql表设置?,php,mysql,database-design,schema,Php,Mysql,Database Design,Schema,我为我正在制作的一封简单的批量电子邮件想出了一个模式。通过运行cron job的php脚本,emailer将每5分钟发送X封电子邮件。问题是我不认为这是最好的方法,我正在寻找另一种更好的方法;或验证;) (简化)模式如下所示: EmailList | JobQue | Jobs ------------|----------|---------- email | jobid | id | email | esubject

我为我正在制作的一封简单的批量电子邮件想出了一个模式。通过运行cron job的php脚本,emailer将每5分钟发送X封电子邮件。问题是我不认为这是最好的方法,我正在寻找另一种更好的方法;或验证;)

(简化)模式如下所示:

 EmailList  |  JobQue  |   Jobs
------------|----------|----------
   email    |   jobid  |    id
            |   email  | esubject
                       |  ebody
其思想是,当创建一个新作业时,它会将其添加到
Jobs
表中,需要发送的每封电子邮件都会添加到
JobQue
表中。
然后,实际发送电子邮件的cron'd php脚本将循环通过
JobQue
表中的下X个项目,发送并删除它们

这是一个好的方法吗?它会在中等负荷下弯曲吗?(1000-5000封电子邮件,每天1-5份工作)?当然,如果有更多的电子邮件被添加,然后被发送,那么会不会有其他问题(比如尝试一次将1000条记录添加到一个表中,即使我用一个mysql查询将它们全部插入)

谢谢,

Max

我认为这是一种非常有效的方法。唯一的问题可能是,如果你想一次发送数千封电子邮件。这可能会导致php超时。 通过一个查询将数千条记录添加到mysql中并不坏,这是最好的方法。 但我必须说,副本取决于查询本身。如果它太长(我指的是一个太长的字符串),那么您可能会断开与服务器的连接。
但我认为你根本不会有这个模式的问题。

在最低限度,你可能需要考虑比5分钟更短的CRON时间。如果你将X限制在30(一个避免被列入许多黑名单的关键数字),你的脚本将需要16小时55分钟来完成5000封电子邮件

我认为这在很大程度上取决于系统的基础设施,尤其是硬件。你应该自己做一些基准测试和压力测试,因为没有人能模仿你的环境。关于您对封装在一个查询中的1000个插入的关注:我认为这在大多数情况下都应该有效。