@Override
 protected List<O> execute(Task<I, O> task, List<I> batch) {
   try {
     return task.apply(batch);
   } catch (IOException e) {
     e.printStackTrace();
   }
   return Collections.emptyList();
 }
 @Override
 protected void post() {
   for (Task<I, O> task : tasks) {
     task.post();
   }
 }