【问题标题】:How to rerun a the script when an error occured?发生错误时如何重新运行脚本?
【发布时间】:2018-06-01 10:02:55
【问题描述】:

我编写了一个在 xml 文件中搜索值的脚本。我通过以下代码在线检索这些文件

# Reads entire file into a string
    $result = file_get_contents($xml_link);
    # Returns the xml string into an object
    $xml = simplexml_load_string($result);

但 xml 有时很大,因此我收到以下错误致命错误:超过 30 秒的最大执行时间。 我已将 ini.php 文件调整为将 max_exucution 时间设置为 360 秒,但我仍然遇到相同的错误。

我有两个选择。

  • 如果出现此错误,请再次运行该行。但我在网上找不到任何东西(我可能用错误的搜索词搜索)。是否有可能运行再次出现错误的行?
  • 将xml文件临时保存在本地,并以这种方式搜索信息并在过程结束时删除。在这里,我不知道如何在检索所有数据后删除它们?这真的能解决问题吗?因为我的脚本还需要通过xml文件进行搜索?不会花费相同的时间吗?

【问题讨论】:

  • 您为什么不尝试使用 CronJobs 来确保用户界面不会在更长的时间内被阻塞,以保持最低的预期用户体验并执行耗时的任务?
  • 我现在对 CronJobs 一无所知。我找到了以下 set_time_limit(0);但是当我使用它时,我仍然遇到同样的错误。有什么我想念的吗?

标签: php xml urlretrieve


【解决方案1】:

当我在脚本中使用这两行代码时,问题就解决了。

ini_set('max_execution_time', 300);
set_time_limit(0);

【讨论】:

    猜你喜欢
    • 2021-11-01
    • 2012-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-10
    • 2018-11-16
    • 2016-05-16
    相关资源
    最近更新 更多