def update_token(job, token, path_id)
      raise NotImplementedError.new("neither Collector.update_token() nor Job.update_token() are implemented") unless job.respond_to?(:update_token)
      job.update_token(token, path_id)
    end
def update_token(job, token, path_id)
      raise NotImplementedError.new("neither Collector.update_token() nor Job.update_token() are implemented") unless job.respond_to?(:update_token)
      job.update_token(token, path_id)
    end
Updates the token associated with the job. The job or the Collector
 subclass can use any data desired to keep track of the job's paths that
 have been completed. 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
 @param [Object] path_id an indicator of the path if used
 @return [Object] a token to keep track of the progress of the job