我是 Laravel 调度器系统的新手。 我正在使用 Laravel 8。 我已经阅读了 laravel 关于 kernel.php 文件的文档。
这是我的日程安排方法
namespace App\Console;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use Illuminate\Support\Facades\DB;
class Kernel extends ConsoleKernel
{
/**
* The Artisan commands provided by your application.
*
* @var array
*/
protected $commands = [
//
];
/**
* Define the application's command schedule.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
* @return void
*/
protected function schedule(Schedule $schedule)
{
$schedule->call(function () {
DB::table('verifications')->truncate();
})->everyMinute();
}
/**
* Register the commands for the application.
*
* @return void
*/
protected function commands()
{
$this->load(__DIR__.'/Commands');
require base_path('routes/console.php');
}
}
但它不能正常工作。
答案 0 :(得分:0)
您需要运行 crontab,它将每分钟执行一次您的 laraver 调度程序
答案 1 :(得分:0)
schedule() 是一个将您需要的所有 cron 作业组合在一起的函数。 但是您仍然需要使用命令运行此功能,如果您在本地只需运行 php artisan schedule:work 如果您不在本地,则需要创建一个 cron 作业来为您运行此命令! 希望有用!
答案 2 :(得分:0)
您需要设置一个 cronjob 来运行 Laravel 调度程序。调度程序每分钟运行一次,并确定在什么时间运行哪个命令。
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
编辑:这主要适用于 Linux/Unix 操作系统,对于 Windows 我认为你可以设置 Windows 调度程序,但我不精通
Edit2:要在不设置 cronjob 的情况下在本地测试您的计划,您可以按照 Running The Scheduler Locally
中的说明运行php artisan schedule:work