':param delay_seconds: The delay in seconds from now that this task
will call the supplied callback and be done.
:param callback: A callable to be called by this task once after at
least delay_seconds time has elapsed.  It must return None
or a new Agent instance.
:param now_func: A time.time like function.  Default: time.time.
Used for testing.'

def __init__(self, delay_seconds, callback, now_func=None):

    assert (delay_seconds > 0)
    assert callable(callback)
    if (not now_func):
        now_func = time.time
    self._now_func = now_func
    self._callback = callback
    self.end_time = (self._now_func() + delay_seconds)
    self.aborted = False
    self.host_ids = ()
    self.success = False
    self.queue_entry_ids = ()
    self.num_processes = 0
