def percent_complete
      return 99  if merging?
      return 100 if complete?
      unit_count = work_units.count
      return 100 if unit_count <= 0
      (work_units.complete.count / unit_count.to_f * 100).round
    end
def percent_complete
      return 99  if merging?
      return 100 if complete?
      unit_count = work_units.count
      return 100 if unit_count <= 0
      (work_units.complete.count / unit_count.to_f * 100).round
    end
How complete is this Job?
 Unfortunately, with the current processing sequence, the percent_complete
 can pull a fast one and go backwards. This happens when there's a single
 large input that takes a long time to split, and when it finally does it
 creates a whole swarm of work units. This seems unavoidable.