スポンサーリンク

[Laravel]タスクスケジューラーの便利さ

こんな機能まであったのね

<?php
$schedule->command('news:update')
    ->everyTwoHours()                           // 二時間おき
    ->withoutOverlapping(30)                    // 重複実行防止、タイムアウト30分
    ->runInBackground()                         // バックグラウンド実行
    ->emailOutputOnFailure('admin@example.com') // 失敗時メール通知
    ->appendOutputTo('storage/logs/news.log')   // ログ出力
    ->when(function () {                        // 条件付き実行
        return Carbon::now()->hour >= 6;        // 6時以降のみ
    })
    ->skip(function () {                        // スキップ条件
        return Cache::has('maintenance_mode');
    });

# ->withoutOverlapping(30)  // 重複実行防止、タイムアウト30分
# のロック確認

# ロックファイルの確認
ls -la storage/framework/schedule-*

# 手動でロック解除(緊急時)
rm storage/framework/schedule-*

知らないと損をすることがLaravelではよくありますね。
でも仕様書が英語でたんまりあるんで読まないですよね・・・。