code: def update_job_progress(self, job_id, progress, total_progress):
          
  
          session = self.sessionmaker()
          job, orm_job = self._update_job_state(
              job_id, state=State.RUNNING, session=session)
  
          # Note (aron): looks like SQLAlchemy doesn't automatically
          # save any pickletype fields even if we re-set (orm_job.obj = job) that
          # field. My hunch is that it's tracking the id of the object,
          # and if that doesn't change, then SQLAlchemy doesn't repickle the object
          # and save to the DB.
          # Our hack here is to just copy the job object, and then set thespecific
          # field we want to edit, in this case the job.state. That forces
          # SQLAlchemy to re-pickle the object, thus setting it to the correct state.
  
          job = copy(job)
  
          job.progress = progress
          job.total_progress = total_progress
          orm_job.obj = job
  
          session.add(orm_job)
          session.commit()
          session.close()
          return job_id
docs: Update the job given by job_id's progress info.
          :type total_progress: int
          :type progress: int
          :type job_id: str
          :param job_id: The id of the job to update
          :param progress: The current progress achieved by the job
          :param total_progress: The total progress achievable by the job.
          :return: the job_id