Python module to run the job.

        This is used by :func:`run` and the standard worker system.
        If the work spec contains keys ``module``, ``run_function``,
        and ``terminate_function``, then this contains the Python
        module object named as ``module``; otherwise this contains
        :const:`None`.

def module(self):
        '''Python module to run the job.

        This is used by :func:`run` and the standard worker system.
        If the work spec contains keys ``module``, ``run_function``,
        and ``terminate_function``, then this contains the Python
        module object named as ``module``; otherwise this contains
        :const:`None`.

        '''
        if self._module_cache is None:
            funclist = filter(None, (self.spec.get('run_function'),
                                     self.spec.get('terminate_function')))
            if funclist:
                try:
                    self._module_cache = __import__(
                        self.spec['module'], globals(), (), funclist, -1)
                except Exception:
                    logger.error('failed to load spec["module"] = %r',
                                 self.spec['module'], exc_info=True)
                    raise
        return self._module_cache