Developer's Guide

  • Docs Home
  • Community Home

1. Job Requirements

Jobs should subclass Products.Jobber.jobs.Job. At a minimum, a Job must implement its own run() method, which should perform the actions specific to the job and call back to the finished() method reporting success or failure.

Example 7.1. A Job that cleans up the history table in the events database

from Products.Jobber.jobs import Job
from Products.Jobber.status import SUCCESS, FAILURE

class CleanHistoryJob(Job):
    """
    Delete all events of a certain age from the
    history table.
    """
    def __init__(self, agedDays=7):
        self.agedDays = agedDays
        super(CleanHistoryJob, self).__init__()

    def run(self, r):
        zem = self.dmd.ZenEventManager
        try:
            zem.manage_deleteHistoricalEvents(
                             agedDays=self.agedDays)
        except:
            self.finished(FAILURE)
        else:
            self.finished(SUCCESS)