Cron工作不正常;有什么问题或其他方法?

时间:2015-08-18 13:54:51

标签: php mysql cron

好吧,我一直在努力完成这个cron工作一整天而且没有取得进展。 我已经在终端(MAC)中添加了几个代码,每个人都在这个网站上说,但没有一个能够工作。 我见过的代码是:

* * * * * php /usr/local/php5/bin/php5 /path/to/file/

或其他类似的东西。但是,它们都不起作用。
代码有问题吗?如果是这样,请指出。
如果没有,我完成了cron工作。 我找到了另一个PHP脚本,可以编写每秒插入数据到MYSQL表中,但我不认为这个也可以。

<?php
    $start = microtime(true);
    set_time_limit(60);
    for ($i = 0; $i < 59; ++$i) {
        doMyThings();
        time_sleep_until($start + $i + 1);
    }
?>

这段代码对吗? 有没有其他我可以使用的方法(用上面的php脚本编写),你知道吗?

2 个答案:

答案 0 :(得分:3)

不正确:

* * * * * php /usr/local/php5/bin/php5 /path/to/file/
          ^^^--php executable
              ^^^^^^^^^^^^^^^^^^^^^^^^---script to run

你告诉php要自己运行。 cron行应该简单:

* * * * * executable arguments

e.g。

* * * * * /usr/bin/php  /path/to/script.php

答案 1 :(得分:0)

我更喜欢使用-f标志来明确告诉PHP运行此脚本

* * * * * /usr/bin/php -f /path/to/script.php

很多人都忘了,cron几乎没有环境变量,特别是没有$ PATH ..所以命令必须有完整的文件路径才能工作..例如;

php -f ./myscript.php  

将从命令行工作,但不能从cron工作。要从cron运行,它需要两个完整的路径..

/usr/bin/php -f /home/mydir/myscript.php