Php 分配负荷

Php 分配负荷,php,mysql,Php,Mysql,假设我有一个包含5个电子邮件地址的数据库,还有一张联系表 每次用户提交联系人表单时,表单都需要将详细信息提交到我存储的一个电子邮件地址。这我可以处理,但我开始感到困惑,我将如何让它*共享提交的电子邮件 例如,我需要在电子邮件地址之间共享负载。每次提交联系表时,它都需要发送到我表格中的下一个电子邮件地址。然后在收到最后一封电子邮件时从头开始 很抱歉,如果这是一个严肃的初学者问题,我似乎想不出最好的方法。我想到了两个选项: 只需从你的数组中随机选择一个电子邮件地址,不要麻烦按顺序将它们发送到每封电子

假设我有一个包含5个电子邮件地址的数据库,还有一张联系表

每次用户提交联系人表单时,表单都需要将详细信息提交到我存储的一个电子邮件地址。这我可以处理,但我开始感到困惑,我将如何让它*共享提交的电子邮件

例如,我需要在电子邮件地址之间共享负载。每次提交联系表时,它都需要发送到我表格中的下一个电子邮件地址。然后在收到最后一封电子邮件时从头开始


很抱歉,如果这是一个严肃的初学者问题,我似乎想不出最好的方法。我想到了两个选项:

只需从你的数组中随机选择一个电子邮件地址,不要麻烦按顺序将它们发送到每封电子邮件。这将更容易实现,并将在规模上为您提供相同的结果

$my_emails = array('anemail', ...);
$selected_email = $my_emails[array_rand($my_emails)];
每次发送电子邮件时增加一个计数器,将该值保存在db表、文件或其他文件中,然后使用计数器的模数和您必须选择的电子邮件数来选择电子邮件,例如:

$counter = fetch_counter();
$my_emails = array('anemail', ...);
$index = ($counter + count($my_emails)) % count($my_emails);
$selected_email = $my_emails[$index];
$counter++;
store_counter($counter);

我已经好几年没有编写PHP了。你已经被警告了

您可以在电子邮件表中想出一个名为sendcount的额外列,默认值为0。在要查找电子邮件发送地址的脚本中,执行以下操作:

//Get email with least counts
$query="SELECT * FROM emails ORDER BY sendcount ASC LIMIT 1";
$result=mysql_query($query);
$object=mysql_fetch_object($result); //This will store the required email address in $object->email

//Send email...

//Increase counter by one
$query="UPDATE emails SET sendcount=sendcount+1 WHERE id=".$object->id;
mysql_query($query);

这样,您将始终将电子邮件发送到数量最少的地址

您可以尝试找出提交内容的相似之处,并与他人分享。然后,您可以构建一棵树并使用贪婪算法分发电子邮件。这个问题看起来像是垃圾箱打包或虚拟机共享。

让5个用户共享同一个POP帐户会容易得多。如果您需要持久性,我建议的第二个选项会起作用。很明显,您需要实现持久性代码,但您明白了。谢谢,我很感激:我曾想过使用数组移位,但将坚持使用随机方法。谢谢太好了,如果这回答了你的问题,你能接受吗?谢谢:这太完美了!非常感谢