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 sameid.
- 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.