现在有个项目需要给所有会员群发邮件,功能已经实现,可发现由于会员太多,页面会一直停留在发送邮件的页面,当关闭页面后 邮件也会停止发送...
不知道当大家遇到这需求时是怎么解决的?
我暂时想到的是能不能让程序后台执行,这样当用户关闭浏览器也不会影响邮件的发送。我找到下面这段代码 但我不知道能不能用到我的项目中,具体不知道怎么用
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*5;// 每隔半小时运行
do{
//这里是你要执行的代码
sleep($interval);// 等待5分钟
}while(true);
这代码是后台每隔5分钟执行一次,感觉和我的需求不太一样
不知道哪位达人有更好的思路!
不知道当大家遇到这需求时是怎么解决的?
我暂时想到的是能不能让程序后台执行,这样当用户关闭浏览器也不会影响邮件的发送。我找到下面这段代码 但我不知道能不能用到我的项目中,具体不知道怎么用
ignore_user_abort();//关掉浏览器,PHP脚本也可以继续执行.
set_time_limit(0);// 通过set_time_limit(0)可以让程序无限制的执行下去
$interval=60*5;// 每隔半小时运行
do{
//这里是你要执行的代码
sleep($interval);// 等待5分钟
}while(true);
这代码是后台每隔5分钟执行一次,感觉和我的需求不太一样
不知道哪位达人有更好的思路!
每次取出一个用户的id,给这个用户发完邮件之后,取得下一个符合发送条件的用户id,转到下一页
比如你发送邮件的页面是:sendmail.php
那么页面地址就是: sendmail.php?userid=1
发送之后,取得下一个用户id比如是:3
(这里可以隔几秒)
就跳到sendmail.php?userid=3
.......
直到发完为止
加个 crontab不就行了