Scheduler Instances
📅 Scheduler UI¶
The Scheduler UI provides a centralized interface to monitor and control scheduler operations. It helps administrators oversee scheduler health, thread status, task execution, event handling, and container management — all from one place.
Note: Scheduler instances cannot be created through the web UI. Instance provisioning depends on your deployment mode: - On-Prem: Use the EasyTask Installer to create and manage scheduler instances. - Cloud / Sandbox: Contact EasyTask support to request new scheduler instances. The infrastructure is managed by the EasyTask team.
📌 Scheduler Dashboard¶
The Dashboard page (/scheduler) provides a real-time overview of scheduler health, thread monitoring, event actions, and container management.
✅ What it provides:
- Health Metrics Panel:
- Instance name, version, and start datetime
- Health check age and uptime
- Connected worker count
- Active tasks count
- Triggers in the last 24 hours
- Overall scheduler status (running / inactive)
- Thread Monitor:
- Trigger Processor, Task Submitter, State Transitions, Event Consumer, Admin Channel, Midnight Crossover, and Memory Reclaimer
- Each thread shows alive status, health status, and restart count
| Thread | Purpose |
|---|---|
| Trigger Processor | Evaluates schedules and initiates task triggers |
| Task Submitter | Dispatches triggered tasks to worker agents |
| State Transitions | Processes task status updates from agents |
| Event Consumer | Handles system events and control actions |
| Admin Channel | Processes administrative commands |
| Midnight Crossover | Handles date transitions and calendar rollovers |
| Memory Reclaimer | Manages system resource cleanup |
| - Event Actions Card: | |
| - Quick-action buttons: Debug On, Debug Off, Calendar Sync, Graph Refresh | |
| - Real-time confirmation when the scheduler acknowledges the event | |
| - Container Management: | |
| - Container status display | |
| - Start / Stop / Restart controls | |
| - Live container log viewer (auto-refreshing, color-coded by log level) | |
| - Offline State: | |
| - Shows a warning banner when the scheduler is inactive |
💡 Example Use Case:
Check if the production scheduler is running with all 7 threads active, restart the container after a configuration change, and inject a REFRESH_CALENDAR event to reload holiday calendars — all from one page.
📊 Task Runs¶
For detailed information about real-time task run monitoring, lifecycle visualization, and log viewing, see Task Runs and Dependencies.
⏰ Events & Scheduler Actions¶
The scheduler supports injecting control events via the Dashboard page and managing event history.
✅ Available Event Actions:
- Debug Control:
ENABLE_DEBUG— Enable debug logging on schedulerDISABLE_DEBUG— Disable debug logging on scheduler
- Refresh Operations:
REFRESH_CALENDAR— Reload holiday calendarsREFRESH_GRAPH— Rebuild dependency graphREFRESH_TASK_DEFINITION— Reload a specific task definitionREFRESH_TASK_GROUP_DEFINITION— Reload a group definition
- Task Control:
ENABLE_TASK— Enable a taskDISABLE_TASK— Disable a taskFORCE_RUN_TASK— Force execute a taskFREEZE_TASK— Freeze a taskUNFREEZE_TASK— Unfreeze a taskTERMINATE_TASK— Terminate a running taskMODIFY_STATUS— Modify a task's status
- Adhoc Commands:
ADHOC_COMMAND— Execute a one-off command on selected worker agents
✅ Event Confirmation:
- Real-time confirmation when the scheduler receives and processes the event
- Event history with pagination and filtering
✅ Event History:
- Paginated list of all published events
- Filter by event type, date, publisher, task, and result status
- View detailed event logs and execution results
💡 Example Use Case:
After adding a new holiday calendar, inject a REFRESH_CALENDAR event from the Dashboard and confirm the scheduler has reloaded the updated calendar data.
🔧 Adhoc Tasks¶
The Adhoc Tasks page (/adhoc) allows operators and administrators to execute one-off commands on selected worker agents. Access is restricted to operator, admin, and superadmin roles.
✅ What you can do:
- Compose and execute adhoc commands on selected worker agents
- Configure advanced options: stdout/stderr paths, max runtime, retry attempts, run as user
- Track execution with real-time per-agent status
- View execution history with expandable per-agent details
💡 Example Use Case: Run a quick diagnostic script on a specific worker agent without creating a scheduled task — compose the command, select the target agent, and execute it directly from the UI.
🏠 Dashboard Integration¶
The main Dashboard page (/) integrates scheduler data alongside other system metrics with real-time updates.
✅ What it provides:
- Scheduler Status Card: Running / Degraded / Inactive badge with health status, thread count, and worker count
- Run Status Breakdown: Color-coded pills showing count per status (SUCCESS, FAILED, RUNNING, TERMINATED, etc.)
- Task Execution Charts:
- 7-day execution trend chart (completed vs failed per day)
- Today's execution by minute
- Upcoming Schedules Table: Tasks scheduled within the next 60 minutes with countdown timers (shows "Scheduler is offline" warning when inactive)
- Connected Agents Table: Agent name, host, status, queue, and pool for all connected workers
- Maintenance Agent Warning: Alert when the maintenance agent is inactive
- Recent Task Runs: Quick-glance table with links to detailed log views
- Header Indicator: "Scheduler offline" amber warning badge in the top-right navbar when scheduler is inactive
💡 Example Use Case: Before starting the workday, check the Dashboard to see the scheduler status, review upcoming tasks, and identify any overnight failures in the trend chart.
✅ Summary¶
The Scheduler UI empowers you to:
- 📈 Monitor real-time scheduler health and thread status
- 📋 Track task runs with lifecycle visualization and live log streaming
- ⏳ Inject and track critical system events with real-time confirmation
- 🐳 Manage the scheduler container (start / stop / restart)
- 🔧 Execute adhoc commands on worker agents
- 📊 View execution trends and upcoming schedules on the Dashboard
- 🛡️ Maintain operational reliability with confidence
Frequently Asked Questions¶
Q: How do I create a new scheduler instance? A: Scheduler instances cannot be created through the web UI. For on-prem deployments, use the EasyTask Installer to create new instances. For cloud/sandbox deployments, contact EasyTask support to request a new scheduler instance. Refer to the Scheduler Instance documentation for more details.
Q: What does the Scheduler Dashboard show?
A: The Dashboard (/scheduler) displays real-time health metrics (health status, uptime, version, connected workers, active tasks), a thread monitor showing 7 threads with their alive status and restart counts, event action buttons with real-time confirmation, and a container management section with live logs.
Q: How do I monitor task executions?
A: Navigate to the Task Runs page (/task-runs) for a live-updating table of all task executions. Use filters for status, time range, and task name. Click the eye icon on any row to see the full lifecycle timeline and log viewer.
Q: How do I inject an event like REFRESH_CALENDAR?
A: Go to the Scheduler Dashboard (/scheduler) and use the Event Actions card to submit events like Debug On/Off, Calendar Sync, or Graph Refresh. The system confirms when the scheduler has acknowledged the event. For task-specific events (force run, freeze, terminate), use the Events API.
Q: How do I view logs for a running task? A: From the Task Runs page, click the eye icon on the task run row. This opens the Task Run Detail page with a unified log viewer. Running tasks stream logs live in real time; completed tasks offer paginated log retrieval. You can switch between stdout/stderr tabs and search within logs.
Q: How do I start/stop the scheduler container?
A: On the Scheduler Dashboard (/scheduler), use the Container Management section. It shows the current container status with Start, Stop, and Restart buttons, plus a live container log viewer.