code: def make_tasker(func):
      
      def anonFunc(*args, **kwdargs):
          class anonTask(Task):
              def execute(self):
                  self.logger.debug("Executing fn %s" % func)
                  try:
                      val = func(*args, **kwdargs)
  
                      self.logger.debug("Done executing fn %s" % func)
                      return val
  
                  except Exception as e:
                      # Log error message and re-raise exception.
                      self.logger.error("fn %s raised exception: %s" % (
                          func, str(e)))
                      raise e
  
          return anonTask()
      return anonFunc
docs: make_tasker takes a callable (function, method, etc.) and returns
      a new factory function for generating tasks.  Each factory function is
      designed to consume its arguments and return a task that, when executed,
      will call the function upon the arguments.
  
      TODO: deprecate this and just use FuncTask, which is easier to
      understand--must change a number of programs first.