Welcome, guest | Sign In | My Account | Store | Cart

Notice! PyPM is being replaced with the ActiveState Platform, which enhances PyPM’s build and deploy capabilities. Create your free Platform account to download ActivePython or customize Python with the packages you require and get automatic updates.


ztfy.scheduler is unavailable in PyPM, because there aren't any builds for it in the package repositories. Click the linked icons to find out why.

 Python 2.7Python 3.2Python 3.3
Windows (32-bit)
Windows (64-bit)
Mac OS X (10.5+)
Linux (32-bit)
Linux (64-bit)
Depended by

What is ztfy.scheduler ?

ztfy.scheduler is a base package for those which need to build scheduled tasks which can run inside a ZTK/ZopeApp based environment (ZEO is required !). These tasks can be scheduled:

  • on a cron-style base,
  • at a given date/time (like the "at" command)
  • or at a given interval.

Scheduling is done through the APScheduler (http://packages.python.org/APScheduler/) package and so all these kinds of tasks can be scheduled with the same sets of settings. But tasks management is made through a simple web interface and tasks running history is stored in the ZODB.

On application start, the scheduler is run in a dedicated ZeroMQ process, which is also used to handle synchronization between tasks settings and scheduler jobs.

Tasks logs can be stored in the ZODB for a variable duration (based on a number of iterations). These log reports can also be sent by mail, on each run or only when errors are detected.

How to use ztfy.scheduler ?

A set of ztfy.scheduler usages are given as doctests in ztfy/scheduler/doctests/README.txt


  • updated french translation
  • added tasks attributes relatives to empty reports handling
  • use "tztime" function in history sorting
  • added one second before checking ZMQ processes startup
  • remove ZTFY.security resources dependencies
  • convert roles edit forms to dialogs
  • register ZMQ scheduler process exit callback function
  • added system command execution task (local, or remote throught SSH)
  • added option to execute a task immediately on user's request
  • removed title from jobs list template
  • complete package refactoring, with tasks and scheduler jobs synchronization based on a dedicated ZeroMQ process
  • changed package source layout
  • implement ztfy.security ILocalRoleManager interface
  • start and stop scheduler when scheduler utility is registered or unregistered, instead of when it's added or removed
  • remove scheduler from schedulers handler when scheduler is stopped
  • update ShelveJobStore to take care of specific file systems configurations, because sometimes shelve modification time is not updated when "sync()" is called. From now on jobs configuration timestamp is stored in shelve and a blocking file lock is used to prevent concurrent modifications in it. At least it seems to work on Linux, any feedback concerning other OS is still welcome...
  • refactoring to follow last releases of ztfy.skin and ztfy.jqueryui packages
  • redefined interfaces so that tasks scheduling mode (cron-style, interval-style...) can be defined on a per-task basis and is not bound to the task class; new scheduling modes can also be added via registered utilities
  • store tasks execution log in tasks history
  • add an "URL getter" task, which can be used to call a remote "management" URL on periodic basis
  • add username/password/realm to ZEO connections
  • modify ZODB packer task to be able to pack another remote database instead of only those to which scheduler is defined
  • improved handling of transactions and conflict errors
  • changed ISite package import
  • updated database automatic upgrade code
  • migrated to ZTK-1.1
  • integrated ZODBPackerTask (moved from ztfy.blog package)
  • initial release

Subscribe to package updates

What does the lock icon mean?

Builds marked with a lock icon are only available via PyPM to users with a current ActivePython Business Edition subscription.

Need custom builds or support?

ActivePython Enterprise Edition guarantees priority access to technical support, indemnification, expert consulting and quality-assured language builds.

Plan on re-distributing ActivePython?

Get re-distribution rights and eliminate legal risks with ActivePython OEM Edition.