def METHOD_NAME(self, worker, idleTime=60, hbTimeout=None, parameters=None):
    """
    Adds a worker object and sets it running. Worker thread will sleep for
    idleTime seconds between runs. Parameters, if present, are passed into
    the worker thread's setup, algorithm and terminate methods
    """
    # Check type of worker
    if not isinstance(worker, BaseWorkerThread):
        msg = "Attempting to add worker that does not inherit from "
        msg += "BaseWorkerThread"
        logging.critical(msg)
        return
    # Prepare the new worker thread
    self.prepareWorker(worker, idleTime, hbTimeout)
    workerThread = threading.Thread(target=worker, args=(parameters,))
    msg = "Created worker thread %s" % str(worker)
    logging.info(msg)
    # Increase the active thread count - note this must be done before
    # starting the thread so the callback can decrease back in case of
    # startup failure
    self.lock.acquire()
    self.activeThreadCount += 1
    workerThread.name = "threadmanager-slave%s" % worker.slaveid
    self.slavelist.append(workerThread.name)
    self.lock.release()
    # Actually start the thread
    workerThread.start()