运行多个cron作业的问题

时间:2013-05-23 17:02:29

标签: php redirect cron

我正在开发一个项目,我需要每晚运行12个不同的PHP文件。为了我的目的,其中11个文件正在提取数据,每个数据来自不同的外部站点并将其重新格式化为XML文件。第12个文件将11个XML文件合并为主XML文件。

我最初将这些组合成一个单独的PHP文件但是,它太多了并且保持超时。它们工作正常,按原样分开。

我正在使用GoDaddy共享主机方案并开始设置cron作业以便每晚运行这些文件。但是,GoDaddy总共限制你完成10个cron的工作。

因此,作为替代方案,我在前10个文件的底部放置了一个标题重定向(显然最后一个文件不需要重定向),重定向到下一个文件并运行它。这将11个cron职位合并为1个。

// On to the next
header('Location: http://www.domain.com/secondFile.php');

我当时没有意识到,标题重定向仅在浏览器中工作,而不是在cron作业中。我收到了 302 Moved Temporarily 消息。

我还有其他选择吗?是否存在重定向到cron作业的重定向?

感谢所提供的任何信息。



感谢 Barmar 的帮助,我现在已经开始工作了。在GoDaddy托管上为其他任何有相同问题的人发布格式。

generatexml.sh

#!/bin/sh
/web/cgi-bin/php5 /home/content/u/s/e/username/html/firstFile.php
/web/cgi-bin/php5 /home/content/u/s/e/username/html/secondFile.php
/web/cgi-bin/php5 /home/content/u/s/e/username/html/thirdFile.php

2 个答案:

答案 0 :(得分:1)

通过您的网络服务器和wget运行脚本。

答案 1 :(得分:1)

运行包含shell脚本的单个cron作业来运行每个PHP脚本:

#!/bin/sh
php firstFile.php
php secondFile.php
...