2 个回答

可以用以下几个package来实现.

  1. mtdowling/cron-expression, 用这个来解析cron表达式

  2. 使用 symfony/process 来执行命令

laravel里面也是这么做的.


$cron = Cron\CronExpression::factory('0 * * * *');
$cmd = 'php xxxx.php';

if ($cron->isDue()) {
    (new Symfony\Process($cmd))->run();
}

类似这种的代码, 设定上很多cmd和相应的cron表达式, 然后循环着判断, 并执行一下.
上面这个代码是个假示例.

laravel调度任务的特点,是把crontab定时的功能,和具体任务的代码都在项目里面,而不是cron指定时间去跑脚本。怎么把这部分代码提出来的方法?

宣传栏