Php 如何使用laravel基于数据库条目运行cron作业?

Php 如何使用laravel基于数据库条目运行cron作业?,php,laravel,laravel-5,Php,Laravel,Laravel 5,在我的应用程序中,我使用的一个功能需要在特定时间运行。我把时间保存在我的数据库里。基于此,我的计划程序将运行该功能。目前,我使用了cron方法,它每隔一分钟运行一次该功能。但不要在2、3、4等分钟或任何其他时间运行cron。我该怎么办?是否有任何特定的方法可以获取任何值并基于该值运行cron?如果我理解,您希望在特定的日期/时间执行cron命令?您可以通过在schedule cron命令中使用带有closure函数的when方法来实现这一点,如果给定的日期/时间返回true,将执行该命令。这样做

在我的应用程序中,我使用的一个功能需要在特定时间运行。我把时间保存在我的数据库里。基于此,我的计划程序将运行该功能。目前,我使用了cron方法,它每隔一分钟运行一次该功能。但不要在2、3、4等分钟或任何其他时间运行cron。我该怎么办?是否有任何特定的方法可以获取任何值并基于该值运行cron?

如果我理解,您希望在特定的日期/时间执行
cron
命令?您可以通过在schedule cron命令中使用带有closure函数的
when
方法来实现这一点,如果给定的日期/时间返回true,将执行该命令。这样做:

$schedule->command('your:command')
            ->when(function(){
               return ('your condition goes here');
            });

因此,如果您的条件为true,则将执行此命令

您可以通过两种方式运行crob作业:

  • 在控制器中写入函数,并为该函数写入路由。并在cron作业中设置该函数路由
  • 设置cron如下:

    wget -O -q -t 1 {url of that function}
    
    for example : wget -O -q -t 1 http://domian.com/xyz/advertisement_expire_if_not_print
    
  • 使用调度程序

  • 在laravel中,我们可以通过“”链接检查如何运行cron当前我正在运行,如下所示,
    $schedule->call(函数()使用($input){//Executable code here}->cron(****)
    ),但这只适用于分钟/everyminutes/everyfiveminutes等。但是如果我添加任何其他参数,如
    ->cron(“*/3****”
    或其他一些条件,则它不工作。