1

我正在做一个项目,我需要每天晚上运行 12 个不同的 PHP 文件。出于我的目的,其中 11 个文件正在从不同的外部站点提取数据并将其重新格式化为 XML 文件。第 12 个文件,将 11 个 XML 文件组合成一个主 XML 文件。

我最初将这些合并到一个 PHP 文件中,但它太多了,而且一直超时。它们工作正常,按原样分开。

我正在使用 GoDaddy 共享托管计划,并开始设置 cron 作业以每晚运行这些文件。但是,GoDaddy 将您的 cron 作业总数限制为 10 个。

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

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

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

我在这里还有什么其他选择?是否有适用于 cron 作业的重定向?

提供的任何信息表示赞赏。



感谢Barmar的帮助,我现在可以正常工作了。在 GoDaddy 主机上为遇到相同问题的其他人发布格式。

生成xml.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

等等

4

2 回答 2

1

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

于 2013-05-23T17:04:45.770 回答
1

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

#!/bin/sh
php firstFile.php
php secondFile.php
...
于 2013-05-23T17:07:25.163 回答