method that takes care of processing job records in STATE_IN_PROGRESS state

def _process_state_in_progress(self, job_record):
        """ method that takes care of processing job records in STATE_IN_PROGRESS state"""
        def _process_state(target_state, uow):
            if uow.is_active:
                # Large Job processing takes more than 1 tick of the Scheduler
                # Let the Job processing complete - do no updates to Scheduler records
                pass
            elif uow.is_finished:
                # create new UOW to cover new inserts
                new_uow, is_duplicate = self.insert_and_publish_uow(job_record, 0, int(uow.end_id) + 1)
                self.update_job(job_record, new_uow, target_state)

        uow = self.uow_dao.get_one(job_record.related_unit_of_work)
        try:
            target_state = self._compute_next_job_state(job_record)
            _process_state(target_state, uow)
        except ValueError:
            # do no processing for the future timeperiods
            pass