APScheduler

Task scheduling library for Python

Latest version: 4.0.0a6 registry icon
Maintenance score
100
Safety score
100
Popularity score
100
Check your open source dependency risks. Get immediate insight about security, stability and licensing risks.
Security
  Vulnerabilities
Version Suggest Low Medium High Critical
4.0.0a6 0 0 0 0 0
4.0.0a5 0 0 0 0 0
4.0.0a4 0 0 0 0 0
4.0.0a3 0 0 0 0 0
4.0.0a2 0 0 0 0 0
4.0.0a1 0 0 0 0 0
3.11.0 0 0 0 0 0
3.10.4 0 0 0 0 0
3.10.3 0 0 0 0 0
3.10.2 0 0 0 0 0
3.10.1 0 0 0 0 0
3.10.0 0 0 0 0 0
3.9.1.post1 0 0 0 0 0
3.9.1 0 0 0 0 0
3.9.0.post2 0 0 0 0 0
3.9.0.post1 0 0 0 0 0
3.9.0 0 0 0 0 0
3.8.1 0 0 0 0 0
3.8.0 0 0 0 0 0
3.7.0 0 0 0 0 0
3.6.3 0 0 0 0 0
3.6.2 0 0 0 0 0
3.6.1 0 0 0 0 0
3.6.0 0 0 0 0 0
3.5.3 0 0 0 0 0
3.5.2 0 0 0 0 0
3.5.1 0 0 0 0 0
3.5.0 0 0 0 0 0
3.4.0 0 0 0 0 0
3.3.1 0 0 0 0 0
3.3.0 0 0 0 0 0
3.2.0 0 0 0 0 0
3.1.0 0 0 0 0 0
3.0.6 0 0 0 0 0
3.0.5 0 0 0 0 0
3.0.4 0 0 0 0 0
3.0.3 0 0 0 0 0
3.0.2 0 0 0 0 0
3.0.1 0 0 0 0 0
3.0.0rc1 0 0 0 0 0
3.0.0b2 0 0 0 0 0
3.0.0b1 0 0 0 0 0
3.0.0 0 0 0 0 0
2.1.2 0 0 0 0 0
2.1.1 0 0 0 0 0
2.1.0 0 0 0 0 0
2.0.3 0 0 0 0 0
2.0.2 0 0 0 0 0
2.0.1 0 0 0 0 0
2.0.0 0 0 0 0 0
1.3.1 0 0 0 0 0
1.3 0 0 0 0 0
1.2.1 0 0 0 0 0
1.2 0 0 0 0 0
1.01 0 0 0 0 0
1.0 0 0 0 0 0

Stability
Latest release:

4.0.0a6 - This version is safe to use because it has no known security vulnerabilities at this time. Find out if your coding project uses this component and get notified of any reported security vulnerabilities with Meterian-X Open Source Security Platform

Licensing

Maintain your licence declarations and avoid unwanted licences to protect your IP the way you intended.

MIT   -   MIT License

Not a wildcard

Not proprietary

OSI Compliant



.. image:: https://github.com/agronholm/apscheduler/actions/workflows/test.yml/badge.svg :target: https://github.com/agronholm/apscheduler/actions/workflows/test.yml :alt: Build Status .. image:: https://coveralls.io/repos/github/agronholm/apscheduler/badge.svg?branch=master :target: https://coveralls.io/github/agronholm/apscheduler?branch=master :alt: Code Coverage .. image:: https://readthedocs.org/projects/apscheduler/badge/?version=latest :target: https://apscheduler.readthedocs.io/en/master/?badge=latest :alt: Documentation

.. warning:: The v4.0 series is provided as a pre-release and may change in a backwards incompatible fashion without any migration pathway, so do NOT use this release in production!

Advanced Python Scheduler (APScheduler) is a task scheduler and task queue system for Python. It can be used solely as a job queuing system if you have no need for task scheduling. It scales both up and down, and is suitable for both trivial, single-process use cases as well as large deployments spanning multiple nodes. Multiple schedulers and workers can be deployed to use a shared data store to provide both a degree of high availability and horizontal scaling.

APScheduler comes in both synchronous and asynchronous flavors, making it a good fit for both traditional, thread-based applications, and asynchronous (asyncio or Trio_) applications. Documentation and examples are provided for integrating with either WSGI_ or ASGI_ compatible web applications.

Support is provided for persistent storage of schedules and jobs. This means that they can be shared among multiple scheduler/worker instances and will survive process and node restarts.

The built-in persistent data store back-ends are:

  • PostgreSQL
  • MySQL and derivatives
  • SQLite
  • MongoDB

The built-in event brokers (needed in scenarios with multiple schedulers and/or workers):

  • PostgreSQL
  • Redis
  • MQTT

The built-in scheduling mechanisms (triggers) are:

  • Cron-style scheduling
  • Interval-based scheduling (runs tasks on even intervals)
  • Calendar-based scheduling (runs tasks on intervals of X years/months/weeks/days, always at the same time of day)
  • One-off scheduling (runs a task once, at a specific date/time)

Different scheduling mechanisms can even be combined with so-called combining triggers (see the documentation_ for details).

You can also implement your custom scheduling logic by building your own trigger class. These will be treated no differently than the built-in ones.

Other notable features include:

  • You can limit the maximum number of simultaneous jobs for a given task (function)
  • You can limit the amount of time a job is allowed to start late
  • Jitter (adjustable, random delays added to the run time of each scheduled job)

.. _Trio: https://pypi.org/project/trio/ .. _WSGI: https://wsgi.readthedocs.io/en/latest/what.html .. _ASGI: https://asgi.readthedocs.io/en/latest/index.html .. _documentation: https://apscheduler.readthedocs.io/en/master/

Documentation

Documentation can be found here <https://apscheduler.readthedocs.io/en/master/?badge=latest>_.

Source

The source can be browsed at Github <https://github.com/agronholm/apscheduler>_.

Reporting bugs

A bug tracker <https://github.com/agronholm/apscheduler/issues>_ is provided by GitHub.

Getting help

If you have problems or other questions, you can either:

  • Ask in the apscheduler <https://gitter.im/apscheduler/Lobby>_ room on Gitter
  • Post a question on GitHub discussions_, or
  • Post a question on StackOverflow_ and add the apscheduler tag

.. _GitHub discussions: https://github.com/agronholm/apscheduler/discussions/categories/q-a .. _StackOverflow: http://stackoverflow.com/questions/tagged/apscheduler