'Schedule a job. The job will be run in a worker process, with the
result placed in self.results. If a terminal failure has occurred
previously, this method will raise the :class:`Failure` exception.
:param job_id: A unique id for the job. The result will have this id.
:param module: Either a fully qualified python module name or python
source code which will be executed as a module.
Source code is detected by the presence of newlines in module.
:param func: Name of the function from ``module`` that will be
executed. ``args`` and ``kwargs`` will be passed to the function.'

def __call__(self, job_id, module, func, *args, **kwargs):

    if self.failed:
        raise Failure(self.terminal_failure)
    job = Job(job_id, module, func, args, kwargs)
    self.tracker.put(None)
    self.events.put(job)
