Wp_Schedule_Single_Event是否可以用于运行后台进程?

时间:2013-07-13 作者:chifliiiii

我有一个插件,允许用户向朋友发送邀请。如果用户有大约4000个朋友,我们就会遇到麻烦。

目前,我使用下面这样一个简单的批处理来处理电子邮件。但我们也会发送facebook和twitter消息。用户不需要等到过程完成,实际上这是通过ajax调用调用的

set_time_limit(60*60);

if( $quantity < 40 ){

    foreach( $emails as $email )
    {
        wp_mail( $email, $subject, $message, $headers);
        sleep(1);
    }

}
else
{
    $counter = 0;
    //Lets create batches
    foreach( $emails as $email )
    {
            $counter++;
        wp_mail( $email, $subject, $message, $headers);
        sleep(1);

        if( $counter == 50 )
        {
            sleep(10);
            $counter = 0;
        }
    }
}
由于共享主机中通常不允许使用cron作业,因此我们考虑使用wp\\u schedule\\u single\\u event时,exec有时也不可用。应该是可能的,否则我需要试试exec("doTask.php $arg1 $arg2 $arg3 >/dev/null 2>&1 &"); 在后台运行流程的方法?

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

如果你说的“遇到麻烦”是指服务器或浏览器超时,那么我预计你也会遇到同样的问题wp_schedule_single_event, 因为它只是在其他时间运行您的函数。

我会考虑使用wp_schedule_event 把工作分成几部分——比如说,每半小时或每小时处理500个(你喜欢的4000个)。我想你也可以这样做wp_schedule_single_event 通过安排多个单独的活动,但我不知道你为什么会喜欢这样wp_schedule_event.

但这两个过程都不是严格意义上的“背景”过程,我想你的意思是this.

我还应该注意到,我见过的大多数主机都不允许您发送的那种海量电子邮件。如果你还没有,我会查一下TOS。

结束

相关推荐

找不到wp-cron.php,但我可以在公用文件夹中看到它

我对wp cron有问题。php文件。我可以在浏览公用文件夹时看到它,并且它的权限设置为755。但我仍然在服务器错误日志中收到此错误:[2012年3月15日星期四17:49:20][错误][客户端xx.xx.xxx.xxx]找不到wp cron。php,参考:http://secretsection.com/invizimals/?page_id=681有人能解释我为什么会出现这个错误吗?我能做些什么来修复它?顺便提一下我正在使用WP v.3.3.1BR公司