【发布时间】: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。几年前,我看到我的前辈在每行末尾都使用了一些额外的东西,但不确定他们为什么或做了什么。现在我在另一家公司...