gpt4 book ai didi

PHP 脚本停止运行,503 服务不可用

转载 作者:搜寻专家 更新时间:2023-10-31 21:23:41 24 4
gpt4 key购买 nike

我有自己的 PHP 脚本来发送时事通讯。它工作得很好。最近,我的托管服务提供商给我指出了一个配额:30 封邮件/分钟。因此,在每次发送邮件之间,我插入 sleep(2);

由于那个改变,在 5 分钟(300 秒)后,脚本停止并返回:

Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later. Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request.

四个观察。

  1. 在我的脚本开头,我放了这两行:

    ignore_user_abort(true);
    set_time_limit(0);

    所以,问题不是出在max_execution_time这个变量上(经验证:确实被修改了)。

  2. 该脚本在 localhost 上正常工作,其中 PHP ini 变量比在我的 Web 主机上更受限制。所以,问题不是来自 memory_limit 变量。

  3. 我认为这可能是 Apache 超时变量限制 (300)。但是我的主机提供商对此持怀疑态度...

  4. 服务器在 PHP 5.5 上运行。

这可能是什么原因造成的?

之前的脚本(它适用于 PHPMailer):

// all email addresses
while ($row = $result->fetch_array())
{
// ...

if ($mail->send())
{
echo "success : " . $row["mail"] . "<br/>";
}
else
{
echo "error : " . $row["mail"] . " - " . $mail->ErrorInfo . "<br/>";
}
}

之后:

// all email addresses
while ($row = $result->fetch_array())
{
...

if ($mail->send())
{
echo "success : " . $row["mail"] . "<br/>";
}
else
{
echo "error : " . $row["mail"] . " - " . $mail->ErrorInfo . "<br/>";
}

sleep(2);
}

最佳答案

我认为在服务器上使用了 mod_fastcgi 或 equals。

看看这个旧帖子http://www.binarytides.com/php-set-time-limit/

For example mod_fastcgi has an option called "-idle-timeout" which controls the idle time of the script. So if the script does not output anything to the fastcgi handler for that many seconds then fastcgi would terminate it. The setup is somewhat like this:

Apache <-> mod_fastcgi <-> php processes

您应该使用队列和 crontab,队列每分钟处理一次。

希望这对您有所帮助。

关于PHP 脚本停止运行,503 服务不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40973440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com