我四处搜索,但找不到除 set_time_limit(0) 之外的解决方案,该解决方案不适用于大多数共享主机。
基本上我有一个脚本,可以在他们想要的时候向我的用户的朋友发送消息。我的一些用户有 +4000 个朋友,脚本遇到了麻烦。
目前我用 AJAX 在后台调用这个脚本。因为我不需要/不希望用户等到完成,所以我希望有某种背景处理。
我当前的代码:
global $client, $emails, $subject, $message;
_info("got on_auth_success cb, jid ".$client->full_jid->to_string());
$client->set_status("available!", "dnd", 10);
set_time_limit(60*10);
if( count($emails) < 40 ){
foreach( $emails as $email )
{
$msg = new XMPPMsg(array('to'=>'-'.$email.'@chat.facebook.com'), $message);
$client->send($msg);
sleep(1);
}
}
else
{
$counter = 0;
//Lets create batches
foreach( $emails as $email )
{
$counter++;
$msg = new XMPPMsg(array('to'=>'-'.$email.'@chat.facebook.com'), $message);
$client->send($msg);
sleep(1);
if( $counter == 50 )
{
sleep(10);
$counter = 0;
}
}
}
$client->send_end_stream();
使用 exec 会是一个很好的解决方案吗?例如
exec("doTask.php $arg1 $arg2 $arg3 >/dev/null 2>&1 &");
我需要一个适用于大多数主机的解决方案,因为这是一个可以安装在任何主机上的 wordpress 插件。谢谢!