我已经从Laravel文档:https://laravel.com/docs/5.7/scheduling
中创建了任务计划我将其放置在everyMinute()中,当我使用该命令时它仅执行一次,而不是每分钟执行一次。我使用cronhub.io对其进行监视,结果是执行命令。
这是我执行的命令:
$ php artisan schedule:run
Running scheduled command: "E:\Laragon\bin\php\php-7.2.11-Win32-VC15-x64\php.exe" "artisan" update:weather > "NUL" 2>&1
App \ Console \ Kernel.php
<?php
...
class Kernel extends ConsoleKernel
{
...
protected function schedule(Schedule $schedule)
{ $schedule->command('update:weather')->everyMinute()->thenPing("https://cronhub.io/ping/ce3d19a0-6c01-11e9-8ce3-9b563ae1be45");
}
在我的 App \ Console \ Commands \ UpdateWeatherIcon.php 上
namespace App\Console\Commands;
use Illuminate\Console\Command;
use App\Enums\WeatherIcon;
use App\Weather;
class UpdateWeatherIcon extends Command
{
protected $signature = 'update:weather';
protected $description = 'Update Weather Icon every end of day';
public function __construct()
{
parent::__construct();
}
public function handle()
{
$weather = new WeatherIcon();
$current_weather = Weather::find(1);
$current_weather->current_weather = $weather->getRandomValue();
$current_weather->updated_at = \Carbon\Carbon::now();
$current_weather->save();
}
}
它仅在Windows 10中运行一次吗?因为这是我第一次使用cron作业。