code: def change_execution_time(self, job, date_time):
          
          with self.connection.pipeline() as pipe:
              while 1:
                  try:
                      pipe.watch(self.scheduled_jobs_key)
                      if pipe.zscore(self.scheduled_jobs_key, job.id) is None:
                          raise ValueError('Job not in scheduled jobs queue')
                      pipe.zadd(self.scheduled_jobs_key, {job.id: to_unix(date_time)})
                      break
                  except WatchError:
                      # If job is still in the queue, retry otherwise job is already executed
                      # so we raise an error
                      if pipe.zscore(self.scheduled_jobs_key, job.id) is None:
                          raise ValueError('Job not in scheduled jobs queue')
                      continue
docs: Change a job's execution time.