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

解决方案 »

  1.   

    我曾经做过一个是这样做的:
    每次取出一个用户的id,给这个用户发完邮件之后,取得下一个符合发送条件的用户id,转到下一页
    比如你发送邮件的页面是:sendmail.php
    那么页面地址就是: sendmail.php?userid=1
    发送之后,取得下一个用户id比如是:3
    (这里可以隔几秒)
    就跳到sendmail.php?userid=3
    .......
    直到发完为止
      

  2.   

    php -f sendmail.php 
    加个 crontab不就行了
      

  3.   

    有个想法,就是用异步调用一个php来执行,就是ajax的意思,用post和get都可以