示例#1
0
  private JsonArray getFlights(
      final String from, final String to, final String date, final int numTickets) {

    List<Future<JsonArray>> list = new ArrayList<>();
    ExecutorService executor = Executors.newFixedThreadPool(8);
    List<Airline> apiUrls = new AirlineFacade().getAirlines();

    for (final Airline airline : apiUrls) {
      Callable<JsonArray> task =
          new FlightGetterCallable(from, to, date, numTickets, airline.getUrl());
      list.add(executor.submit(task));
    }
    executor.shutdown();
    JsonArray allFlights = new JsonArray();
    for (Future<JsonArray> array : list) {
      try {
        allFlights.addAll(array.get());
      } catch (InterruptedException | ExecutionException ex) {
        Logger.getLogger(Flights.class.getName()).log(Level.SEVERE, null, ex);
      }
    }
    return allFlights;
  }