将cron作业从通过url(curl)调用更改为通过本地命令行(PHP)调用

时间:2016-02-15 14:50:41

标签: php curl cron

我有一个名为cron.php的cron文件。 在其中我使用curl_multi方法来启动子并行任务。

实施例: cpanel的crontab将每分钟执行一次。

curl http://mywebsite.com/cron.php

内部cron.php我有curl_multi代码,可以调用另一个名为 sub-crons.php 的文件。第一个是 http://mywebsite.com/sub-crons.php?cron_key=1 ,第二个是 http://mywebsite.com/sub-crons.php?cron_key=2 ,依此类推。

这就是问题,我想使用像这样的php命令:

php /path/to/my/cron.php

我可以使用第一个cron.php文件执行此操作,但它会调用另一个文件(对于url中的子任务,我希望它在PHP path/to/sub-crons.php?cron_key=1中调用它)。

我能这样做吗?

1 个答案:

答案 0 :(得分:2)

磁盘上的文件没有查询参数。查询参数仅用于 URL ,这在命令行上执行本地文件时无关紧要。

您的调用需要看起来更像:

php path/to/sub-crons.php 1

在脚本中,您需要使用$argv[1]来检索参数,而不是$_GET