Scheduler API

The SchedulerManager class wraps APScheduler for scheduling automation tasks.


SchedulerManager

class SchedulerManager

Manages blocking and non-blocking schedulers.

Adding Jobs

add_blocking_job(func, trigger=None, args=None, kwargs=None, id=None, name=None, misfire_grace_time=undefined, coalesce=undefined, max_instances=undefined, next_run_time=undefined, jobstore='default', executor='default', replace_existing=False, **trigger_args)

Adds a job to the blocking scheduler. Wraps APScheduler’s add_job().

Parameters:
  • func (callable) – Function to run.

  • trigger (str) – Trigger type (e.g., "interval", "cron").

  • id (str) – Unique job identifier.

  • name (str) – Human-readable job name.

  • replace_existing (bool) – If True, replaces a job with the same id.

Returns:

The created Job instance.

Return type:

Job

add_nonblocking_job(func, trigger=None, args=None, kwargs=None, id=None, name=None, **trigger_args)

Adds a job to the non-blocking (background) scheduler. Same parameters as add_blocking_job().

Interval Scheduling

Convenience methods for interval-based scheduling. All accept function, id, args, kwargs, and the interval parameter.

Blocking:

add_interval_blocking_secondly(function, id=None, seconds=1, **trigger_args)
add_interval_blocking_minutely(function, id=None, minutes=1, **trigger_args)
add_interval_blocking_hourly(function, id=None, hours=1, **trigger_args)
add_interval_blocking_daily(function, id=None, days=1, **trigger_args)
add_interval_blocking_weekly(function, id=None, weeks=1, **trigger_args)

Non-blocking:

add_interval_nonblocking_secondly(function, id=None, seconds=1, **trigger_args)
add_interval_nonblocking_minutely(function, id=None, minutes=1, **trigger_args)
add_interval_nonblocking_hourly(function, id=None, hours=1, **trigger_args)
add_interval_nonblocking_daily(function, id=None, days=1, **trigger_args)
add_interval_nonblocking_weekly(function, id=None, weeks=1, **trigger_args)

Cron Scheduling

add_cron_blocking(function, id=None, **trigger_args)

Adds a cron-triggered job to the blocking scheduler.

add_cron_nonblocking(function, id=None, **trigger_args)

Adds a cron-triggered job to the non-blocking scheduler.

Scheduler Control

get_blocking_scheduler()
Returns:

The blocking scheduler instance.

Return type:

BlockingScheduler

get_nonblocking_scheduler()
Returns:

The background scheduler instance.

Return type:

BackgroundScheduler

start_block_scheduler(*args, **kwargs)

Starts the blocking scheduler (blocks the current thread).

start_nonblocking_scheduler(*args, **kwargs)

Starts the non-blocking scheduler in a background thread.

start_all_scheduler(*args, **kwargs)

Starts both blocking and non-blocking schedulers.

Job Management

remove_blocking_job(id, jobstore='default')

Removes a job from the blocking scheduler.

Parameters:

id (str) – Job identifier.

remove_nonblocking_job(id, jobstore='default')

Removes a job from the non-blocking scheduler.

Parameters:

id (str) – Job identifier.

shutdown_blocking_scheduler(wait=False)

Shuts down the blocking scheduler.

Parameters:

wait (bool) – If True, waits for running jobs to finish.

shutdown_nonblocking_scheduler(wait=False)

Shuts down the non-blocking scheduler.

Parameters:

wait (bool) – If True, waits for running jobs to finish.