【问题标题】:cron to run php script simultaneouslycron 同时运行 php 脚本
【发布时间】:2013-09-08 03:45:32
【问题描述】:

我设置了 3 个 crons 来在每天午夜执行 php 文件。 每个脚本都有自己的工作,比如 a.php、b.php 和 c.php

a.php -> 从数据库中选择术语(文本)并在 google、facebook、twitter、google+ 中搜索并将结果存储在数据库中。

b.php -> 从我们的网站中挑选图像并在 tineye.com 数据库中搜索并存储结果

c.php -> 选择企业名称并在 citygrid.com、google places、yelp.com 上搜索其评论并将其存储在数据库中。

每次获取后,它都会更新下一个执行日期,以便它可以在该日期获取该术语/图像/业务的数据。

我的问题是

一,我看到只有很少的数据库记录被提取并更新到数据库,后来的记录没有更新。这可能是因为在获取开始条款的数据时,执行时间已过期并且无法继续。我尝试将 max_execution_time 增加到 100000 但没有运气。

两个,我看到a.php、b.php和c.php没有同时启动。

我使用的语法:

0 0 * * * /usr/bin/php /var/www/html/a.php
0 0 * * * /usr/bin/php /var/www/html/b.php
0 0 * * * /usr/bin/php /var/www/html/c.php

我需要天才的建议才能让它发挥最大作用。

【问题讨论】:

  • 如果问题出在您的 php 代码中,那么查看 cron 条目对我们没有多大帮助……您是说 cron 有问题吗?
  • 单独执行时,所有 php 脚本都可以正常工作。 Cron 一次没有运行。当第一个 cron 执行/完成时,第二个正在运行,当第二个完成时,第三个开始运行。所以我想知道如何独立执行所有 crons 而无需等待另一个。想知道的另一件事是 max_execution_time 对它有什么影响。由于每个脚本都需要大量时间,因为它必须从数据库中获取数据并在 google、facebook、twitter 和 google+ 上搜索,然后进行处理并将结果存储在数据库中。
  • 在这种情况下,我建议您联系开发团队以获取适合您的 Linux 风格,并告诉他们 cron 中存在一个基本错误... cron 不应该只允许运行一个任务一次,但应在需要时同时触发所有任务
  • 亲爱的马克,谢谢你的建议。我们的网站托管在 godaddy.com 上。 Godaddy 不允许您从 shell 访问 crontab,他们是否提供了一个 Web 界面来设置 cron。几年前,我看到我的前辈在每行末尾都使用了一些额外的东西,但不确定他们为什么或做了什么。现在我在另一家公司...

标签: php cron


【解决方案1】:

当您从命令行 (/usr/bin/php) 运行 PHP 时,没有 max_execution 时间。 max_execution 仅在从网络服务器使用 PHP 时使用。

尝试手动运行脚本时调试输出,将error_reporting设置为E_ALL并输出大量调试信息。我认为您的脚本有问题,导致它在没有消息或类似消息的情况下死亡。

【讨论】:

  • 单独执行时,所有 php 脚本都可以正常工作。 Cron 一次没有运行。当第一个 cron 执行/完成时,第二个正在运行,当第二个完成时,第三个开始运行。所以我想知道如何独立执行所有 crons 而无需等待另一个。想知道的另一件事是 max_execution_time 对它有什么影响。由于每个脚本都需要大量时间,因为它必须从数据库中获取数据并在 google、facebook、twitter 和 google+ 上搜索,然后进行处理并将结果存储在数据库中。
猜你喜欢
  • 2016-11-14
  • 2014-11-01
  • 2018-07-05
  • 2019-07-23
  • 1970-01-01
  • 2011-09-09
  • 1970-01-01
  • 2018-03-22
  • 1970-01-01
相关资源
最近更新 更多