Metadata-Version: 2.1
Name: APScheduler
Version: 4.0.0a4
Summary: In-process task scheduler with Cron-like capabilities
Author-email: Alex Grönholm <alex.gronholm@nextday.fi>
License: MIT
Project-URL: Documentation, https://apscheduler.readthedocs.io/en/master/
Project-URL: Changelog, https://apscheduler.readthedocs.io/en/master/versionhistory.html
Project-URL: Source code, https://github.com/agronholm/apscheduler
Project-URL: Issue tracker, https://github.com/agronholm/apscheduler/issues
Keywords: scheduling,cron
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Python: >=3.8
Description-Content-Type: text/x-rst
License-File: LICENSE.txt
Requires-Dist: anyio~=4.0
Requires-Dist: attrs>=21.3
Requires-Dist: tenacity~=8.0
Requires-Dist: tzlocal>=3.0
Requires-Dist: typing_extensions>=4.0; python_version < "3.11"
Provides-Extra: asyncpg
Requires-Dist: asyncpg>=0.20; extra == "asyncpg"
Provides-Extra: cbor
Requires-Dist: cbor2>=5.0; extra == "cbor"
Provides-Extra: mongodb
Requires-Dist: pymongo>=4; extra == "mongodb"
Provides-Extra: mqtt
Requires-Dist: paho-mqtt>=1.5; extra == "mqtt"
Provides-Extra: redis
Requires-Dist: redis>=4.4.0; extra == "redis"
Provides-Extra: sqlalchemy
Requires-Dist: sqlalchemy>=2.0.19; extra == "sqlalchemy"
Provides-Extra: test
Requires-Dist: APScheduler[cbor,mongodb,mqtt,redis,sqlalchemy]; extra == "test"
Requires-Dist: asyncpg>=0.20; platform_python_implementation == "CPython" and extra == "test"
Requires-Dist: aiosqlite>=0.19; extra == "test"
Requires-Dist: anyio[trio]; extra == "test"
Requires-Dist: asyncmy>=0.2.5; platform_python_implementation == "CPython" and extra == "test"
Requires-Dist: coverage>=7; extra == "test"
Requires-Dist: freezegun; extra == "test"
Requires-Dist: paho-mqtt>=1.5; extra == "test"
Requires-Dist: psycopg; extra == "test"
Requires-Dist: pymongo>=4; extra == "test"
Requires-Dist: pymysql[rsa]; extra == "test"
Requires-Dist: PySide6>=6.6; platform_python_implementation == "CPython" and extra == "test"
Requires-Dist: pytest>=7.4.0; extra == "test"
Requires-Dist: pytest-freezer; extra == "test"
Requires-Dist: pytest-lazy-fixture; extra == "test"
Requires-Dist: pytest-mock; extra == "test"
Requires-Dist: uwsgi; (platform_python_implementation == "CPython" and platform_system == "Linux") and extra == "test"
Provides-Extra: doc
Requires-Dist: sphinx; extra == "doc"
Requires-Dist: sphinx-autodoc-typehints; extra == "doc"
Requires-Dist: sphinx-rtd-theme>=1.3.0; extra == "doc"
Requires-Dist: sphinx-tabs>=3.3.1; extra == "doc"

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