关于 laravel:task-scheduling
面向 Laravel 开发者的定时任务配置技能,涵盖防重叠、多节点执行和生命周期处理,帮助在不同环境中安排任务。
主要功能
- 01按指定时间调度命令
- 02防止任务运行重叠
- 03协调多服务器执行
- 04在后台运行任务
- 05分组回调并按信号释放锁
适用场景
- 01安排每日报告命令
- 02避免长任务重复运行
- 03在多个节点运行计划任务
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jpcaparas/ superpowers-laravel --skill laravel:task-scheduling安装后在 Claude Code 中输入/laravel:task-scheduling确认已加载。
详细介绍
任务调度
在不同环境中可靠地运行计划任务。
命令
// app/Console/Kernel.php
protected function schedule(Schedule $schedule): void
{
$schedule->command('reports:daily')
->dailyAt('01:00')
->withoutOverlapping()
->onOneServer()
->runInBackground()
->evenInMaintenanceMode();
}
# Run the scheduler from cron
* * * * * cd /var/www/app && php artisan schedule:run >> /dev/null 2>&1
模式
- 使用
withoutOverlapping()防止长时间运行的命令重复执行 - 在多个节点上运行时,使用
onOneServer() - 输出日志/指标以便查看;考虑在失败时发送通知
- 通过配置/环境变量为有风险的作业启用功能标志
Laravel 13+
# Group lifecycle callbacks
Schedule::group([
Command::command('reports:generate'),
Command::command('emails:send'),
])->before(fn () => /* setup */)->after(fn () => /* teardown */);
# Release overlap locks on SIGTERM/SIGINT for fast redeploys
$schedule->command('reports:generate')->withoutOverlapping(releaseOnSignal: true);
# Inspect what runs per environment
sail artisan schedule:list --environment=production # or: php artisan schedule:list --environment=production
评论
支持 Markdown