📅  最后修改于: 2023-12-03 15:17:15.400000             🧑  作者: Mango
在使用Laravel进行开发时,服务器上可以设置计划任务,但是本地开发时可能无法进行计划任务调度。本文将介绍如何在Laravel本地环境中进行计划任务调度。
在使用Laravel进行开发时,可以使用 laravel-task-scheduler 包来实现本地计划任务。可以使用以下命令进行安装:
composer require spatie/laravel-task-scheduler
将 Spatie\TaskScheduler\TaskSchedulerServiceProvider::class
添加到 config/app.php
中的 providers
中。
'providers' => [
// ...
Spatie\TaskScheduler\TaskSchedulerServiceProvider::class,
],
创建一个任务,用于描述要运行的任务代码。任务的类必须实现 Spatie\TaskScheduler\Tasks\Task
接口。
use Spatie\TaskScheduler\Tasks\Task;
class UpdateSomething implements Task
{
public function __construct($arguments = null)
{
$this->arguments = $arguments;
}
public function __invoke()
{
// update something
}
}
在 app/Console/Kernel.php
中的 schedule
方法中注册任务
protected function schedule(Schedule $schedule)
{
$schedule->command('my:command')->hourly();
$schedule
->call(new UpdateSomething())
->everyMinute();
}
使用以下命令运行调度器:
php artisan task:scheduler
使用 laravel-task-scheduler
包,可以方便地在本地环境中运行Laravel计划任务。通过注册任务和调度器,可以定期地执行指定的代码,以完成各种重复性任务。