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 `_