code: func Loop(ctx context.Context, logger log.Logger, db *reform.DB,
  	queue job.Queue, duration time.Duration, f func() []*data.Job) {
  	tik := time.NewTicker(duration)
  	logger = logger.Add("method", "Loop")
  
  	go loop(ctx, tik, db, queue, f, logger, nil)
  }
docs: // Loop performs a function that creates new jobs with a certain frequency.
  // If at the moment there is already a similar active job, then such job is
  // ignored. The function works correctly only with jobs for which duplicates
  // are allowed.