Scheduled Tasks
The Scheduled Tasks resource provides a centralized view of all scheduled commands and jobs configured via Laravel’s scheduler. Use this page to verify that tasks run on schedule, monitor their performance, and investigate any failures.
Navigation: Access Scheduled Tasks from the sidebar under the “Scheduled Tasks” section.
1. Scheduled Tasks Index Table
Section titled “1. Scheduled Tasks Index Table”The table displays a paginated list of all scheduled tasks, ordered by the most recent run time or task name (depending on active filters). By default, 50 entries are shown per page with a Load More button at the bottom to fetch additional records.
1.1 Columns
Section titled “1.1 Columns”-
Scheduled Task
- The task identifier, typically the Artisan command signature or custom task name (e.g.,
backup:run
,emails:send-digest
).
- The task identifier, typically the Artisan command signature or custom task name (e.g.,
-
Schedule
- The CRON expression or human-readable schedule (e.g.,
* * * * *
,daily at 02:00
).
- The CRON expression or human-readable schedule (e.g.,
-
Last Run At
- Timestamp when this task last executed. If the task has never run, this field may display “—”.
-
Next Run At
- Predicted next execution timestamp based on the schedule.
-
Avg. Duration
- The average execution time across all historical runs, in milliseconds.
-
Status
- Current health state of the task:
- HEALTHY: Last run completed successfully within expected duration.
- WAITING: Scheduled but not yet executed (upcoming run).
- SKIPPED: Missed its scheduled window (for example, if the scheduler was down).
- FAILED: Last run ended with a non-zero exit code or threw an uncaught exception.
- Current health state of the task:
-
View Icon (👁️)
- Click to open the Scheduled Task Details page, where you can inspect per-run metrics, history, and logs (covered in a separate article).
2. Filters
Section titled “2. Filters”Above the table, use the following filters to locate specific tasks or statuses:
-
Search
- Searches across the task signature or name. Wildcards and partial matches are supported (e.g., searching “backup” matches both
backup:run
andbackup:cleanup
).
- Searches across the task signature or name. Wildcards and partial matches are supported (e.g., searching “backup” matches both
-
Status Dropdown
- Filter tasks by their current status (
HEALTHY
,WAITING
,SKIPPED
,FAILED
). Selecting a status shows only tasks matching that health state.
- Filter tasks by their current status (
-
Schedule Dropdown
- A list of common schedule presets (e.g.,
everyMinute
,hourly
,daily
,weekly
) or recently used CRON expressions. Choose a preset to filter tasks that run on that cadence.
- A list of common schedule presets (e.g.,
Tip: Combine the Search filter with Status to quickly find, for example, failed hourly tasks by searching for “hourly” and selecting
FAILED
in the status dropdown.
3. Load More
Section titled “3. Load More”- The Scheduled Tasks table initially shows up to 50 entries.
- Click Load More to append the next batch of 50 tasks.
- This incremental loading ensures fast initial page loads, especially in large deployments with many scheduled tasks.
4. Best Practices
Section titled “4. Best Practices”- Monitor Task Health: Use the Status filter to view all
FAILED
tasks; investigate immediately to avoid missed operations (backups, notifications, cleanup scripts). - Validate Schedules: Filter by schedule presets to ensure that critical tasks (e.g.,
daily
backups) are correctly configured. - Compare Duration Trends: Sort by Avg. Duration (if sortable) or scan the column to spot tasks increasing in runtime—an early warning of performance regressions.
- Investigate Skipped Tasks: A
SKIPPED
status often means the scheduler wasn’t running or the server was offline. Verify system uptime and scheduler configuration. - Use Search for Nameless Tasks: When tasks have similar names, prefix your query (e.g., “email”) to narrow down to email-related scheduled jobs.
By leveraging the Scheduled Tasks index and filters, you can maintain visibility into your application’s scheduled workload, ensure timely executions, and proactively address any failures or anomalies.