Skip to main content

Schedule Management

The Schedule Management feature allows you to automate flow execution by creating recurring or one-time schedules. This powerful tool enables hands-free testing and monitoring by automatically running your flows at specified times or intervals.

Overview

The Schedule Manager provides:

  • Calendar View: Visual representation of upcoming scheduled flows
  • List View: Detailed list of all schedules with management controls
  • Flexible Scheduling: Support for various scheduling patterns (time-based, interval-based, day-based)
  • Machine Assignment: Control which machines can execute specific schedules
  • Schedule Controls: Pause, resume, edit, and delete schedules
  • Real-time Status: Live updates of schedule states and next run times

Key Features

Schedule Types

  • One-Time Schedules: Execute a flow once at a specific date and time
  • Recurring Schedules: Repeat execution at regular intervals or specific times

Scheduling Options

  • Interval-based: Schedule every X minutes, hours, days, weeks, or months
  • Time-of-day: Execute at specific times (e.g., daily at 9:00 AM)
  • Day-of-week: Weekly schedules (e.g., every Monday)
  • Day-of-month: Monthly schedules (e.g., 1st of every month)
  • Cron expressions: Advanced scheduling using cron syntax

Machine Management

  • Multi-machine support: Assign schedules to specific machines or all machines
  • Load balancing: Distribute scheduled executions across available machines
  • Machine filtering: Only active machines can execute assigned schedules

User Interface

Main Interface

The Schedule Manager is accessible via the main navigation and consists of two main views:

Calendar View (Left Panel)

  • Monthly calendar showing upcoming scheduled executions
  • Visual indicators for different schedule types and states
  • Date selection to filter the list view
  • Interactive schedule items that can be clicked to edit

List View (Right Panel)

  • Comprehensive table of all schedules
  • Status badges showing active/inactive states
  • Schedule type indicators (Recurring/One-Time)
  • Next run timestamps with formatted dates
  • Action buttons for edit, pause/resume, and delete operations

Header Controls

  • "Schedule Manager" title with calendar icon
  • "Manage Machines" button to configure available machines
  • "Create Schedule" button to add new schedules

Creating Schedules

Basic Schedule Creation

  1. Navigate to Schedule Manager at http://localhost:8080/schedules
  2. Click "Create Schedule" button
  3. Fill in the schedule details:
    • Name (optional): Descriptive name for the schedule
    • Flow: Select the flow to execute (required)
    • Schedule Type: Choose "Recurring" or "One-Time"
    • Start Date: When the schedule becomes active

Scheduling Configuration

For One-Time Schedules

  • Set Start Date and optional Time of Day
  • Schedule executes once and then becomes inactive

For Recurring Schedules

Choose one of the scheduling methods:

Interval-Based Scheduling
  • Interval Value: Number (e.g., 2)
  • Interval Type: Minutes, Hours, Days, Weeks, or Months
  • Example: "Every 2 hours"
Time-of-Day Scheduling
  • Time of Day: Specific time in HH:mm format (e.g., 09:00)
  • Interval Type/Value: How often to repeat (e.g., Daily)
  • Example: "Every day at 9:00 AM"
Day-of-Week Scheduling
  • Day of Week: Sunday (0) through Saturday (6)
  • Time of Day: Optional specific time
  • Example: "Every Monday at 10:00 AM"
Day-of-Month Scheduling
  • Day of Month: 1-31 (note: 31st won't run in shorter months)
  • Time of Day: Optional specific time
  • Example: "1st of every month at 8:00 AM"
Advanced Cron Scheduling
  • Cron Expression: Standard cron syntax
  • Example: "0 9 * * 1" (Every Monday at 9:00 AM)

Machine Assignment

  • Machine IDs: Comma-separated list of machine IDs that can execute this schedule
  • Empty field: Schedule can run on any available machine
  • Load balancing: System automatically distributes across assigned machines

Advanced Options

  • End Date: Optional date when schedule should stop recurring
  • Is Active: Whether schedule should start active (default: true)

Managing Schedules

Viewing Schedule Details

Each schedule in the list shows:

  • Schedule name or "Unnamed Schedule"
  • Active/Inactive badge with color coding
  • Schedule type badge (Recurring/One-Time)
  • Flow ID for reference
  • Machine assignment (specific machines or "All machines")
  • Next run time formatted as "MMM d, yyyy h:mm a"
  • Last run time (if available)

Schedule Operations

Editing Schedules

  1. Click the edit button (pencil icon) on any schedule
  2. Modify schedule parameters as needed
  3. Save changes - system recalculates next run time automatically

Pausing/Resuming Schedules

  • Pause button (⏸️): Temporarily stops schedule execution
  • Resume button (▶️): Restarts paused schedules
  • Active schedules show pause button
  • Paused schedules show resume button

Deleting Schedules

  1. Click the delete button (trash icon)
  2. Confirm deletion in the popup dialog
  3. Schedule is permanently removed

Calendar Interaction

  • Click dates in calendar view to filter list view
  • Click schedule items in calendar to edit them
  • Visual indicators show schedule density per day

Schedule States and Status

Schedule Status

  • Active: Schedule is running and will execute at next run time
  • Paused: Schedule is temporarily stopped
  • Expired: End date has passed (for recurring schedules)
  • One-time completed: One-time schedule has executed

Execution Status

  • Next Run: Calculated time for next execution
  • Last Run: Timestamp of most recent execution
  • Running: Currently executing (shown in flow execution interface)

Technical Details

The Schedule Management system uses a sophisticated backend architecture:

Scheduler Service

  • Background processing: Runs every 60 seconds to check for due schedules
  • Machine-aware execution: Only executes schedules on assigned machines
  • Atomic operations: Prevents duplicate executions across multiple instances
  • Intelligent scheduling: Calculates next run times based on schedule type and parameters
  • Error recovery: Automatically retries failed executions

Next Run Calculation

The system calculates execution times based on:

  • Schedule type: One-time vs recurring schedules
  • Timing parameters: Intervals, time-of-day, day-of-week, or day-of-month
  • Execution history: Prevents immediate re-triggering after execution
  • Date constraints: Respects start and end date boundaries

For complete API documentation, see the Schedule Management API reference.

Usage Examples

Daily Health Check

Create a recurring schedule to run system health checks:

  • Flow: Health monitoring flow
  • Schedule Type: Recurring
  • Time of Day: 08:00
  • Interval: Daily
  • Machines: All machines

Weekly Report Generation

Set up automated report generation:

  • Flow: Report generation flow
  • Schedule Type: Recurring
  • Day of Week: 1 (Monday)
  • Time of Day: 09:00
  • Interval: Weekly
  • Machines: reporting-server-01

Load Testing Schedule

Configure periodic load testing:

  • Flow: Load testing flow
  • Schedule Type: Recurring
  • Interval Value: 4
  • Interval Type: Hours
  • Machines: load-test-01, load-test-02

Best Practices

Schedule Design

  1. Use descriptive names for easy identification
  2. Set reasonable intervals to avoid system overload
  3. Configure end dates for temporary schedules
  4. Assign specific machines for resource-intensive flows
  5. Test schedules before relying on them

Performance Considerations

  1. Distribute across machines to balance load
  2. Avoid overlapping executions of resource-intensive flows
  3. Monitor execution history to identify issues
  4. Use appropriate intervals based on flow duration

Maintenance

  1. Regular review of active schedules
  2. Clean up expired one-time schedules
  3. Update machine assignments when infrastructure changes
  4. Monitor execution success rates

Troubleshooting

Common Issues

Schedule Not Executing

  • Check if schedule is active
  • Verify machine assignment matches available machines
  • Confirm flow exists and is executable
  • Check system logs for execution errors

Wrong Execution Time

  • Verify time zone settings
  • Check daylight saving time considerations
  • Review schedule configuration parameters

Duplicate Executions

  • Ensure only one scheduler service instance is running
  • Check machine assignments don't overlap inappropriately
  • Review atomic claiming mechanism logs

Calendar Not Showing Schedules

  • Verify date range includes schedule dates
  • Check if schedules are assigned to current machine
  • Refresh the page to reload calendar data

Error Messages

  • "Flow not found": Selected flow was deleted
  • "Invalid time format": Time of day format incorrect
  • "Machine not available": Assigned machine is offline
  • "Schedule expired": End date has passed

Debug Steps

  1. Check browser console for frontend errors
  2. Review server logs for backend issues
  3. Verify database connectivity
  4. Test flow execution manually
  5. Check machine status and connectivity

Integration

The Schedule Management system integrates with:

  • Flow Management: Executes flows from the flow library
  • Device Management: Coordinates with device availability
  • Queue Management: Uses execution queues for flow processing
  • Machine Configuration: Respects machine assignments and load balancing
  • Execution History: Tracks schedule execution results

Security Considerations

  • Machine isolation: Schedules only execute on assigned machines
  • Flow validation: Ensures scheduled flows exist and are accessible
  • Execution limits: Prevents excessive concurrent executions
  • Audit logging: Tracks all schedule operations and executions

Previous: Queue Management | Next: Audio Management