The Wire · Showcase
SCHEDULER NOW CATCHES SIGNALS, PENNANT EMBRACES ENUMS
By RepoJournal · Filed · About Laravel
Laravel 13 adds graceful shutdown to schedule:work, matching queue:work's container-safe behavior while Pennant gains native PHP enum support.
The scheduler has been running blind to termination signals. When Kubernetes sends SIGTERM during pod shutdown or you hit Ctrl+C mid-task, schedule:work dies immediately without finishing what it started [1]. That changes today. The new signal-aware scheduler stops accepting new runs on SIGINT/SIGTERM/SIGQUIT and waits for in-progress tasks to complete before exiting, bringing parity with queue:work and making the scheduler safe for containerized deployments. Pennant's feature flag system now supports PHP enums natively [2], giving you type-safe feature interactions instead of strings. On the framework desk, three critical fixes landed: Request::json() now correctly preserves top-level zero values instead of treating them as empty bodies [3], and Number::forHumans() and Number::abbreviate() no longer exhaust memory when given INF/NAN values [4]. Both desks bumped actions/checkout to 7.0.0 [5] [6], which blocks checkout of fork PRs in pull_request_target workflows for security.
One email a day. Unsubscribe in one click.
Keep up with Laravel in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.
One email a day. Unsubscribe in one click. Read a past issue →
Action items
- → If you run schedule:work in containers, pull the latest 13.x and test graceful shutdown behavior laravel/framework [plan]
- → If you're using Pennant, consider refactoring feature flag definitions to use enums for type safety laravel/pennant [monitor]
- → Upgrade to latest if you rely on Request::json() with zero-only bodies or use Number utilities with edge-case inputs laravel/framework [plan]
References
- [1] [13.x] schedule:work catch signals ↗ laravel/framework
- [2] [1.x] Feat: PHP Enums ↗ laravel/pennant
- [3] [13.x] Fix Json parsing for top level zero bodies ↗ laravel/framework
- [4] [13.x] Fix Number::forHumans() and Number::abbreviate() crashing on INF/NAN ↗ laravel/framework
- [5] Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group ↗ laravel/ai
- [6] Bump actions/checkout from 6.0.3 to 7.0.0 in the github-actions group ↗ laravel/jetstream