设置一个 cron 作业并使用 PHP 永远重新访问

Set a cron job and reaccess forever using PHP

我在服务器上有一个文件,可以从页面中提取一些数据,就像一个爬虫。好的,现在,有时,脚本的执行需要 5 秒,但有时甚至需要 1 或 2 分钟。

设置一个 cron 作业以在 2、3 或 5 分钟访问文件对我来说不太舒服,因为我需要这个爬虫尽可能快地 运行。

所以我的问题是:

我可以将 cron 作业设置为 运行,比方说,每 5 分钟一次,然后设置 php 一次又一次地重新 运行 脚本吗?

更清楚:

*/5 * * * * wget -O - site.com/index.php?cron >/dev/null 2>&1

index.php?cron

function cron_action()
{
    //some action here

    // Call again the function
    cron_action();
}

cron_action();

由于我不太了解 cron 作业对我的脚本有何反应,我也不知道再过 5 分钟,cron 作业将再次访问 url 时会发生什么.

我会陷入无限循环吗?

你会怎么做?我需要一些建议。我真的需要更快地设置 cron 作业 运行,在我看来,必须永远记住 php 中的功能。

也许你可以使用 crontab 来 运行 它更快,但你可以有一个 pid-lock(某种程度上)这样每次调用 crontab 时只能有一个脚本 运行宁。

设置定时任务:

* * * * * php /path/to/your/file.php --arg1=value1 --arg2=value2 >> /dev/null 2>&1

你的file.php

<?php

//test your args
var_dump($argv);

$minute = date('i',time());

//run every 10 minutes
if(intval($minute)%10==0){
    //run your cron job code here
    cron_action();
}
else{
    //do other code
}

function cron_action()
{
    //do stub
}

这就是如何将 cronjob 与 laravel https://laravel.com/docs/5.3/scheduling 一起使用,您将从中学习。