【问题标题】:Alternatives to PHP Cron Job for Long Running Jobs用于长时间运行的作业的 PHP Cron 作业的替代品
【发布时间】:2011-01-12 03:45:32
【问题描述】:

我们有一个实时列出博客链接的网站。问题是页面加载速度很慢,因为它们正在从各种源站点读取数据。

我编写了一个 PHP 脚本,它为每个页面创建一个 HTML 版本。每小时运行一次。问题是 PHP 脚本在完成所有页面之前超时。我知道我可以增加 PHP 脚本允许的执行时间,但这似乎不是处理问题的最有效方法。

还有其他方法可以做到这一点吗?我只是不知道该开始寻找什么 - PERL?爪哇? Python?这些脚本如何在服务器上运行?我应该从我的虚拟主机那里寻找什么?

【问题讨论】:

  • 如果这就是你所做的一切 PHP 很好。从命令行运行 php 时,我们的服务器没有最大执行时间。实际上,我们将 PHP 用于很多 crons。
  • 这是 CLI(命令行)PHP 吗?应该有no timeout set for CLI tasks
  • 不...我是为朋友做的,他们在 GoDaddy 上运行...
  • 他们的宿主无关紧要。这个脚本是如何被调用的?
  • 这是一个被 Cron Job 调用的 PHP 文件。它循环浏览了一个包含 20 页的数组。如果您通过浏览器运行脚本,它会完成前约 15 页,然后给出超时错误。当我们通过 Cron Job 运行它时,会出现同样的结果。

标签: php python cron web-hosting


【解决方案1】:

带有urllib2 的Python 可能会做得很好。另外,我是否理解正确:您有一个聚合来自其他站点的数据的站点,并且都是生成的静态 HTML?听起来您有点像使用 HTML 作为数据库,所以不妨考虑使用合适的。

【讨论】:

    【解决方案2】:

    鉴于您最初的问题是网络延迟之一(“页面加载缓慢”),我认为没有理由相信 PHP 是这里的瓶颈。我怀疑更改语言会影响您的脚本运行时间。

    【讨论】:

      【解决方案3】:

      另一种解决方案可能是使用数据库,而不是一次性完成这么多工作。制作一张表格,列出您拉取的网站,并存储它们最后一次拉取的时间。然后让 cron 拉出一段时间未拉出的 1 或 2 个。让它经常运行,那么您将始终拥有新数据,但脚本将更容易工作,因为它不会一次尝试做太多事情。这个概念可以很好地扩展。

      【讨论】:

        猜你喜欢
        • 2010-09-12
        • 2015-03-14
        • 2018-05-13
        • 1970-01-01
        • 1970-01-01
        • 2014-03-27
        • 2018-11-18
        • 2011-05-04
        相关资源
        最近更新 更多