计划程序未运行Laravel 5

计划程序未运行Laravel 5,laravel,laravel-5,laravel-4,Laravel,Laravel 5,Laravel 4,我试图运行一个每分钟都能抓取比特币价格并将其添加到数据库的调度程序,但我无法让幼体调度程序正常运行 我在一个单独的php页面中测试了sql代码,它可以工作,但调度程序似乎没有运行 调度函数位于kernel.php中 句柄函数位于作业/更新中 protected function schedule(Schedule $schedule) { $schedule->job(new \App\Jobs\UpdateRates)->everyMinute(); } public

我试图运行一个每分钟都能抓取比特币价格并将其添加到数据库的调度程序,但我无法让幼体调度程序正常运行

我在一个单独的php页面中测试了sql代码,它可以工作,但调度程序似乎没有运行

调度函数位于kernel.php中 句柄函数位于作业/更新中

protected function schedule(Schedule $schedule)
{
    $schedule->job(new \App\Jobs\UpdateRates)->everyMinute();

}


public function handle()
{
    $url = "https://bitpay.com/api/rates";
    $json = file_get_contents($url);
    $data = json_decode($json, TRUE);
    $rate = $data[1]["rate"];    
    $usd_price = 10;     # Let cost of elephant be 10$
    $bitcoin_price = round( $usd_price / $rate , 8 );

    DB::insert('insert into settings (bitcoin_rate, monero_rate) values (?, ?)', [0, 1]);
}

您需要添加到cron:

vim/etc/crontab

修复项目的路径,添加此行

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
这就是所谓的Laravel,然后您可以在Laravel项目中完成剩余的日程安排

现在您可以添加这样的任务,而不必担心再次更新cron

protected function schedule(Schedule $schedule)
{
    $schedule->job(new DailyEmailReports)->dailyAt();
    $schedule->job(new SomeOtherThing)->hourly();
    $schedule->job(new SomeElse)->everyFiveMinutes();     
}

在没有调度程序的情况下,作业的输出是什么?我的意思是,如果使用
php artisan tinker
运行它,它会工作吗?在使用
tinker
运行它之后,它会在数据库中插入任何记录吗?这可能是一个愚蠢的问题,但您有什么触发了您的计划任务?您添加了cron作业吗?不要破坏您的帖子。非常感谢,我不明白kernel.php中“->everyMinute();”部分的意义是什么。如果我不得不使用cron,现在您可以添加越来越多的$schedule->command(SomeCommand::class)->daily()$schedule->command(OtherCommand::class)->everyFiveMinutes();这对@johnpoder更有意义吗?不,我不明白你在说什么。cron基本上就是你的服务器每xxx(秒、分钟等)做一次东西的方式。您添加到cron的行正在运行php artisan schedule:run等。。。我相信每一毫秒左右,现在在你的Laravel项目中,你可以设置任务并每分钟、每小时运行它们。。。只需添加另一个:$schedule->job(newsomenewtask)->everyFiveMinutes();而且不必在cron中再添加一行。这更有意义吗?