code: def schedule(self, scheduled_time, func, args=None, kwargs=None,
                   interval=None, repeat=None, result_ttl=None, ttl=None,
                   timeout=None, id=None, description=None, queue_name=None,
                   meta=None):
          
          # Set result_ttl to -1 for periodic jobs, if result_ttl not specified
          if interval is not None and result_ttl is None:
              result_ttl = -1
          job = self._create_job(func, args=args, kwargs=kwargs, commit=False,
                                 result_ttl=result_ttl, ttl=ttl, id=id,
                                 description=description, queue_name=queue_name,
                                 timeout=timeout, meta=meta)
  
          if interval is not None:
              job.meta['interval'] = int(interval)
          if repeat is not None:
              job.meta['repeat'] = int(repeat)
          if repeat and interval is None:
              raise ValueError("Can't repeat a job without interval argument")
          job.save()
          self.connection.zadd(self.scheduled_jobs_key,
                                {job.id: to_unix(scheduled_time)})
          return job
docs: Schedule a job to be periodically executed, at a certain interval.