Планировщик не работает Laravel 5 - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь запустить планировщик, который каждую минуту получает цены на биткойны и добавляет их в базу данных, но я не могу заставить планировщик larval работать правильно.

Я протестировал код SQLна отдельной странице php, и это работает, но планировщик не работает

Функция расписания находится в 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 голосов
/ 10 февраля 2019

Вам необходимо добавить в cron:

vim / etc / crontab

Исправить путь к вашему проекту , добавить этоline

* * * * * 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();     
}
...