@Override
 public Scheduler getScheduler() {
   return SchedulerFactory.singleton().createOrGetFIFOScheduler("test_" + this.hashCode());
 }
 @Override
 public Scheduler getScheduler() {
   return SchedulerFactory.singleton()
       .createOrGetParallelScheduler(Markdown.class.getName() + this.hashCode(), 5);
 }
 /**
  * Interpreter can implements it's own scheduler by overriding this method. There're two default
  * scheduler provided, FIFO, Parallel. If your interpret() can handle concurrent request, use
  * Parallel or use FIFO.
  *
  * <p>You can get default scheduler by using
  * SchedulerFactory.singleton().createOrGetFIFOScheduler()
  * SchedulerFactory.singleton().createOrGetParallelScheduler()
  *
  * @return return scheduler instance. This method can be called multiple times and have to return
  *     the same instance. Can not return null.
  */
 @ZeppelinApi
 public Scheduler getScheduler() {
   return SchedulerFactory.singleton().createOrGetFIFOScheduler("interpreter_" + this.hashCode());
 }
 @Override
 public Scheduler getScheduler() {
   return SchedulerFactory.singleton()
       .createOrGetFIFOScheduler(LivyPySparkInterpreter.class.getName() + this.hashCode());
 }