def complete?(job, token)
      raise NotImplementedError.new("neither Collector.complete?() nor Job.complete?() are implemented") unless job.respond_to?(:complete?)
      job.complete?(token)
    end
def complete?(job, token)
      raise NotImplementedError.new("neither Collector.complete?() nor Job.complete?() are implemented") unless job.respond_to?(:complete?)
      job.complete?(token)
    end
Returns true if the job has been processed by all paths converging on
 the collector. This can be implemented in the Collector subclass or in
 the Job. This method is executed asynchronously.
 @param [Object] job data to get the key for
 @param [Object] token current token value or nil for the first token value
 @return [true|false] an indication of wether the job has completed all paths