Version history =============== To find out how to migrate your application from a previous version of APScheduler, see the :doc:`migration section `. 2.0.2 ----- * Removed the unique constraint from the "name" column in the SQLAlchemy job store * Fixed output from Scheduler.print_jobs() which did not previously output a line ending at the end 2.0.1 ----- * Fixed cron style jobs getting wrong default values 2.0.0 ----- * Added configurable job stores with several persistent back-ends (shelve, SQLAlchemy and MongoDB) * Added the possibility to listen for job events (execution, error, misfire, finish) on a scheduler * Added an optional start time for cron-style jobs * Added optional job execution coalescing for situations where several executions of the job are due * Added an option to limit the maximum number of concurrenctly executing instances of the job * Allowed configuration of misfire grace times on a per-job basis * Allowed jobs to be explicitly named * All triggers now accept dates in string form (YYYY-mm-dd HH:MM:SS) * Jobs are now run in a thread pool; you can either supply your own PEP 3148 compliant thread pool or let APScheduler create its own * Maximum run count can be configured for all jobs, not just those using interval-based scheduling * Fixed a v1.x design flaw that caused jobs to be executed twice when the scheduler thread was woken up while still within the allowable range of their previous execution time (issues #5, #7) * Changed defaults for cron-style jobs to be more intuitive -- it will now default to all minimum values for fields lower than the least significant explicitly defined field 1.3.1 ----- * Fixed time difference calculation to take into account shifts to and from daylight saving time 1.3.0 ----- * Added __repr__() implementations to expressions, fields, triggers, and jobs to help with debugging * Added the dump_jobs method on Scheduler, which gives a helpful listing of all jobs scheduled on it * Fixed positional weekday (3th fri etc.) expressions not working except in some edge cases (fixes #2) * Removed autogenerated API documentation for modules which are not part of the public API, as it might confuse some users .. Note:: Positional weekdays are now used with the **day** field, not **weekday**. 1.2.1 ----- * Fixed regression: add_cron_job() in Scheduler was creating a CronTrigger with the wrong parameters (fixes #1, #3) * Fixed: if the scheduler is restarted, clear the "stopped" flag to allow jobs to be scheduled again 1.2.0 ----- * Added the ``week`` option for cron schedules * Added the ``daemonic`` configuration option * Fixed a bug in cron expression lists that could cause valid firing times to be missed * Fixed unscheduling bound methods via unschedule_func() * Changed CronTrigger constructor argument names to match those in Scheduler 1.01 ---- * Fixed a corner case where the combination of hour and day_of_week parameters would cause incorrect timing for a cron trigger