Advanced Python Scheduler (APScheduler) is a light but powerful in-process task
scheduler that lets you schedule jobs (functions or any python callables) to be
executed at times of your choosing.
This can be a far better alternative to externally run cron scripts for
long-running applications (e.g. web applications), as it is platform neutral
and can directly access your application's variables and functions.
The development of APScheduler was heavily influenced by the `Quartz
`_ task scheduler written in Java.
APScheduler provides most of the major features that Quartz does, but it also
provides features not present in Quartz (such as multiple job stores).
Features
========
* Thread-safe API
* Excellent test coverage (tested on CPython 2.6 - 2.7, 3.2 - 3.4, PyPy 2.2)
* Configurable scheduling mechanisms (triggers):
* Cron-like scheduling
* Delayed scheduling of single run jobs (like the UNIX "at" command)
* Interval-based (run a job at specified time intervals)
* Integrates with several frameworks:
* `asyncio `_
(`PEP 3156 `_)
* `gevent `_
* `Tornado `_
* `Twisted `_
* `Qt `_ (using either `PyQt `_
or `PySide `_)
* Multiple, simultaneously active job stores:
* Memory
* `SQLAlchemy `_ (any supported RDBMS works)
* `MongoDB `_
Documentation
=============
Documentation can be found `here `_.
Source
======
The source can be browsed at `Bitbucket `_.
Reporting bugs
==============
A `bug tracker `_
is provided by bitbucket.org.
Getting help
============
If you have problems or other questions, you can either:
* Ask on the `APScheduler Google group `_, or
* Ask on the ``#apscheduler`` channel on `Freenode IRC `_