public <T> Bufferable<T> fromGenerator(String name, SourceStep<T> producer, int threads) {
      return (queueName, size, batchSize) -> {
        var nextQueue = new WorkQueue<T>(prefix + "_" + queueName, size, batchSize, stats);
        Worker worker = new Worker(prefix + "_" + name, stats, threads,
          () -> producer.run(nextQueue.threadLocalWriter()));
        return new Builder<>(prefix, name, nextQueue, worker, stats);
      };
    }
Adds an initial step that runs {@code producer} in {@code threads} worker threads to produce items for this
queue.
planetiler-core/src/main/java/com/onthegomap/planetiler/worker/WorkerPipeline.java