调度程序未运行Laravel 5

时间:2019-02-10 04:34:54

标签: laravel laravel-5 laravel-4

我正在尝试运行一个调度程序,该调度程序每分钟获取比特币价格并将其添加到数据库中,但是我无法使幼虫调度程序正常运行。

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

计划功能在kernel.php中 处理功能在Jobs / UpdateRates中

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]);
}

1 个答案:

答案 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();     
}