Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 分批加工_Php_Mysql_Sql_Cron_Newsletter - Fatal编程技术网

Php 分批加工

Php 分批加工,php,mysql,sql,cron,newsletter,Php,Mysql,Sql,Cron,Newsletter,我有时事通讯服务,用户可以每天收到新闻邮件 我用PHP从数据库(MYSQL)获取所有用户的电子邮件,然后用一个脚本为所有用户发送电子邮件 $query = 'SELECT email FROM users'; 现在用户增加了,我在执行时间限制方面遇到了问题,托管提供商增加了时间限制,但这还不够 所以我想把这个过程分成几批,比如每10分钟发送100-200封电子邮件 $query = 'SELECT email FROM users LIMIT 100'; 通过将最后一个id保存在表中,下次我

我有时事通讯服务,用户可以每天收到新闻邮件

我用PHP从数据库(MYSQL)获取所有用户的电子邮件,然后用一个脚本为所有用户发送电子邮件

$query = 'SELECT email FROM users';
现在用户增加了,我在执行时间限制方面遇到了问题,托管提供商增加了时间限制,但这还不够

所以我想把这个过程分成几批,比如每10分钟发送100-200封电子邮件

$query = 'SELECT email FROM users LIMIT 100';
通过将最后一个id保存在表中,下次我获取它并从下一个id开始

$lastId = "SELECT id FROM last_id"; //Id from previous time script was executed (100, 200 300, ..etc)
$query = "SELECT email FROM users WHERE id>$lastId LIMIT 100";
但在某个时刻,所有用户都会收到电子邮件,文件将被免费执行


那么,在所有用户收到电子邮件后,是否可以停止执行cron作业?

我建议使用排队系统,例如:。立即将所有用户列表放入队列。然后,只要队列中有数据,就让消费者以重复的方式完成工作。您可以定义每分钟左右产生的消费者。如果队列中没有任何内容,它们将以最小的开销关闭。@MadhurBhaiya,我以前从未使用过这种服务,它是免费的还是高级的?在我的服务器上工作有什么要求吗?免费/开源。没有特殊要求。只要浏览一下我分享的链接,那里有足够的教程让你开始学习