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).
- Thread-safe API
- Excellent test coverage (tested on CPython 2.6 - 2.7, 3.2 - 3.4, PyPy 2.3)
- 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:
- Multiple, simultaneously active job stores:
- Memory
- SQLAlchemy (any supported RDBMS works)
- MongoDB
- Redis
Documentation can be found here.
The source can be browsed at Bitbucket.
A bug tracker is provided by bitbucket.org.
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