【问题标题】:How to prevent php timeout如何防止php超时
【发布时间】:2019-12-09 14:23:04
【问题描述】:

我的 massiv 数据导入当前出现超时错误。 php 脚本大约需要 90 分钟才能完成,但在 60 分钟后它会返回错误 500。 我正在从这样的 c# 程序调用 php 脚本:

try
{
    WebRequest request = WebRequest.Create("https://path/to/my/script");
    request.Timeout = 7200000;
    request.Credentials = CredentialCache.DefaultCredentials;
    WebResponse response = request.GetResponse();
    ...
}
catch(WebException ex)
{
    ...
}

我已经尝试了一些方法,但都没有解决问题:

  • 在 php.ini 中将“max_execution_time”设置为 7200
  • 在 php.ini 中将“session.gc_maxlifetime”设置为 7200
  • 调用 set_time_limit(0);在php函数的开头

【问题讨论】:

  • 从 CLI 运行它,没有这些限制。是否有人必须按照您现在的运行方式在屏幕上观看 90 分钟?
  • 我很惊讶它可以工作一个小时。大多数网络服务器会在 5 分钟后切断响应。确实应该在命令行上调用长时间运行的脚本以防止超时
  • @RiggsFolly 和 aynber:对不起,我不得不问,但如果我从 CLI 调用 php 脚本会有什么不同?我不会得到与我的 c# 控制台应用程序相同的错误吗?

标签: c# php timeout


【解决方案1】:

尝试在 php.ini` 中同时使用 max_execution_timemax_input_time

max_input_time 用于处理 GET 或 POST 输入,这可能是您的脚本过早停止的原因。

【讨论】:

  • 感谢您的回答!遗憾的是这并没有解决问题:(
猜你喜欢
  • 2011-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 2013-04-08
  • 2017-04-08
  • 1970-01-01
  • 2010-12-04
相关资源
最近更新 更多