Документация

Laravel

Планировщик Laravel умеет отчитываться сам — правкой одной строки.

У планировщика есть встроенные хуки pingBefore, thenPing и pingOnFailure. Отдельный скрипт не нужен.

routes/console.php (Laravel 11+)
use Illuminate\Support\Facades\Schedule;

Schedule::command('reports:build')
    ->dailyAt('03:00')
    ->timezone('Europe/Moscow')
    ->withoutOverlapping()
    ->pingBefore(config('services.tickwatch.ping') . '/start')
    ->thenPing(config('services.tickwatch.ping'))
    ->pingOnFailure(config('services.tickwatch.ping') . '/fail');
config/services.php
'tickwatch' => [
    'ping' => env('TICKWATCH_PING'),
],

Отдельная забота: сам планировщик

Все эти хуки замолкают разом, если schedule:run перестал вызываться — а это самая частая поломка в Laravel-проектах: строку из crontab потеряли при переносе на новый сервер. Заведите отдельный монитор с минутным интервалом прямо на планировщик.

crontab
* * * * * cd /var/www/app && php artisan schedule:run >> /dev/null 2>&1 && curl -fsS -m 5 https://ping.tickwatch.dev/ВАШ-КЛЮЧ > /dev/null
Laravel · Tickwatch