Я создаю контролер команд, это мой код
<?php namespace App\Console\Commands; use Illuminate\Console\Command; use App\Http\Controllers\AppController; class UpdData extends Command { protected $name = 'upd:data'; protected $description = 'Update data'; /** * Create a new command instance. * * @return void */ public function __construct() { parent::__construct(); } /** * Execute the command. * * @return void */ public function handle() { $app = new AppController; $this->info("updated!"); $app->update_data(); } }
Это мой crontab
#!/bin/bash PATH=/usr/bin * * * * * php /home/ubuntu/workspace/app/artisan schedule:run 1>> /dev/null 2>&1
Мой файл Kernel.php
<?php namespace App\Console; use Illuminate\Console\Scheduling\Schedule; use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { /** * The Artisan commands provided by your application. * * @var array */ protected $commands = [ 'App\Console\Commands\Inspire', 'App\Console\Commands\UpdData', ]; /** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * @return void */ protected function schedule(Schedule $schedule) { // $schedule->command('upd:data')->hourly(); // case 1 $schedule->command('upd:data')->cron('* */1 * * *'); // case 2 } }
В случае 1, я пытаюсь выполнить php artisan schedule:run
, я получаю. No scheduled commands are ready to run.
сообщение. На деле 2 это работает, но я должен сам командовать. Но два случая не запускают его автоматически . Я строю свою платформу на облаке9, мне нужна ваша помощь!
Я не нахожу причины, но этот код работает для меня, если я нахожу настоящую причину, я обновлю свой ответ.
Это работа для меня, с hourly
заменой cron
.
protected function schedule(Schedule $schedule) { $schedule->command('upd:data')->cron('0 * * * *'); }