【问题标题】:automating a script in several stages or several times分多个阶段或多次自动化脚本
【发布时间】:2012-04-05 05:52:38
【问题描述】:

我需要每晚运行一个脚本,通过 SOAP 连接到 Web 服务,最多返回 45000 条记录。

我可以设置返回多少条记录,在我达到 max_execution_time 限制之前,似乎限制是 1000 条。

自动化此脚本以获取所有 45000 条记录的最佳方法是什么?肯定有比做 45 个 cron 作业更好的方法吗?

【问题讨论】:

  • 您可以为该脚本增加max_execution_time
  • 远远超过默认的 30 秒,它会耗尽 memory_limit。我正在尝试找到一个不需要我将这些设置提高到荒谬水平的答案
  • 命令行 php 通常禁用时间限制。不要通过浏览器运行脚本。任何网络故障,或按 ESC 键,浏览器都会终止连接,脚本将被关闭。

标签: php


【解决方案1】:

【讨论】:

    【解决方案2】:

    如果您希望它每晚自动运行,那么单个 cron 作业绝对是可行的方法。您可以采取两种基本方法:您可以运行一个查询一个又一个查询的作业,每次提取 x 条记录,直到提取所有记录,或者您可以让一个作业一遍又一遍地运行每隔几分钟,每次提取 x 条记录。两者都有优点和缺点,但第一个选项可能更容易实现。

    为此,我建议您使用set_time_limit() 提高时间限制。这应该是非常高的值,以便您的流程有时间完成,或者如果您没有限制,则只需 0。如果你也有记忆问题,那么我每次都会拉得更少。如果您说最大值为 1000,则考虑 500。让您的应用程序一次又一次地循环提取 500 条记录,直到完成。您可能还想使用sleep() 在每次拉取记录之间加入一点延迟。

    【讨论】:

      猜你喜欢
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      • 2017-11-04
      • 2023-03-12
      • 1970-01-01
      • 2012-03-03
      • 2014-11-05
      • 2011-10-16
      相关资源
      最近更新 更多