summaryrefslogtreecommitdiff
path: root/README.rst
diff options
context:
space:
mode:
authorAlex Grönholm <alex.gronholm@nextday.fi>2014-05-28 13:04:04 +0300
committerAlex Grönholm <alex.gronholm@nextday.fi>2014-05-29 09:05:05 +0300
commite86bd098138a1432bb3f1b6dce7fa913eb9ed2f3 (patch)
tree44bbe4c01ffdb9d7f8475a26d7e23e4b2ac5b7af /README.rst
parente5e2c7f979fea4c2109094943b04259841f207cf (diff)
downloadapscheduler-e86bd098138a1432bb3f1b6dce7fa913eb9ed2f3.tar.gz
Revised the rest of the documentation
Diffstat (limited to 'README.rst')
-rw-r--r--README.rst73
1 files changed, 36 insertions, 37 deletions
diff --git a/README.rst b/README.rst
index be3f416..ad33b48 100644
--- a/README.rst
+++ b/README.rst
@@ -1,67 +1,66 @@
-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.
+Advanced Python Scheduler (APScheduler) is a Python library that lets you schedule your Python code to be executed
+later, either just once or periodically. You can add new jobs or remove old ones on the fly as you please. If you store
+your jobs in a database, they will also survive scheduler restarts and maintain their state. When the scheduler is
+restarted, it will then run all the jobs it should have run while it was offline [#f1]_.
-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.
+Among other things, APScheduler can be used as a cross-platform, application specific replacement to platform specific
+schedulers, such as the cron daemon or the Windows task scheduler. Please note, however, that APScheduler is **not** a
+daemon or service itself, nor does it come with any command line tools. It is primarily meant to be run inside existing
+applications. That said, there's nothing to stop you from using APScheduler to build a scheduler service or to run a
+dedicated process for APScheduler. In fact, several users have reportedly already done so and the
+:class:`~apscheduler.schedulers.blocking.BlockingScheduler` class was made specifically for that purpose.
-The development of APScheduler was heavily influenced by the `Quartz
-<http://www.quartz-scheduler.org/>`_ 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).
+APScheduler has three built-in scheduling systems you can use:
+* Cron-style scheduling
+* Interval-based execution (runs jobs on even intervals)
+* One-off delayed execution (runs jobs once, on a set date/time)
-Features
-========
+You can mix and match scheduling systems and the backends where the jobs are stored any way you like.
+Supported backends for storing jobs include:
-* Thread-safe API
-* Excellent test coverage (tested on CPython 2.6 - 2.7, 3.2 - 3.4, PyPy 2.3)
-* Configurable scheduling mechanisms (triggers):
+* Memory
+* `SQLAlchemy <http://www.sqlalchemy.org/>`_ (any RDBMS supported by SQLAlchemy works)
+* `MongoDB <http://www.mongodb.org/>`_
+* `Redis <http://redis.io/>`_
- * 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:
+APScheduler also integrates with several common Python frameworks, like:
- * `asyncio <http://docs.python.org/3.4/library/asyncio.html>`_
- (`PEP 3156 <http://www.python.org/dev/peps/pep-3156/>`_)
- * `gevent <http://www.gevent.org/>`_
- * `Tornado <http://www.tornadoweb.org/>`_
- * `Twisted <http://twistedmatrix.com/>`_
- * `Qt <http://qt-project.org/>`_ (using either `PyQt <http://www.riverbankcomputing.com/software/pyqt/intro>`_
- or `PySide <http://qt-project.org/wiki/PySide>`_)
-* Multiple, simultaneously active job stores:
+* `asyncio <http://docs.python.org/3.4/library/asyncio.html>`_ (:pep:`3156`)
+* `gevent <http://www.gevent.org/>`_
+* `Tornado <http://www.tornadoweb.org/>`_
+* `Twisted <http://twistedmatrix.com/>`_
+* `Qt <http://qt-project.org/>`_ (using either `PyQt <http://www.riverbankcomputing.com/software/pyqt/intro>`_
+ or `PySide <http://qt-project.org/wiki/PySide>`_)
- * Memory
- * `SQLAlchemy <http://www.sqlalchemy.org/>`_ (any supported RDBMS works)
- * `MongoDB <http://www.mongodb.org/>`_
- * `Redis <http://redis.io/>`_
+.. [#f1] The cutoff period for this is also configurable.
Documentation
-=============
+-------------
Documentation can be found `here <http://readthedocs.org/docs/apscheduler/en/latest/>`_.
Source
-======
+------
The source can be browsed at `Bitbucket <http://bitbucket.org/agronholm/apscheduler/src/>`_.
Reporting bugs
-==============
+--------------
-A `bug tracker <https://bitbucket.org/agronholm/apscheduler/issues?status=new&status=open>`_
+A `bug tracker <https://bitbucket.org/agronholm/apscheduler/issues?status-new&status-open>`_
is provided by bitbucket.org.
Getting help
-============
+------------
If you have problems or other questions, you can either:
-* Ask on the `APScheduler Google group <http://groups.google.com/group/apscheduler>`_, or
* Ask on the ``#apscheduler`` channel on `Freenode IRC <http://freenode.net/irc_servers.shtml>`_
+* Ask on the `APScheduler Google group <http://groups.google.com/group/apscheduler>`_, or
+* Ask on `StackOverflow <http://stackoverflow.com/questions/tagged/apscheduler>`_ and tag your question with the
+ ``apscheduler`` tag