turt2live

Untitled

Jun 20th, 2013
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.08 KB | None | 0 0
  1. @Override
  2.     public void run(){
  3.         while(true){
  4.             int failedRow = 0;
  5.             while(!requests.isEmpty()){
  6.                 Request request = requests.poll();
  7.                 List<String> server = request.getServers();
  8.                 if(server == null){
  9.                     server = new ArrayList<String>(this.connections.keySet());
  10.                 }
  11.                 List<Variable> v = request.getVariables();
  12.                 Variable[] vars = v == null ? null : v.toArray(new Variable[v.size()]);
  13.                 for(String serverName : server){
  14.                     ServerConnection connection = this.connections.get(serverName);
  15.                     ServerResponse response = connection.attemptRequest(request.getType(), vars);
  16.                     if(response.getErrorCode() < 0){
  17.                         request.error("Failed to connect to server. Adding request to back of queue", RequestError.CANNOT_CONNECT);
  18.                         requests.add(request);
  19.                         failedRow++;
  20.                     }else{
  21.                         request.done(response);
  22.                     }
  23.                 }
  24.                 if(failedRow>5){
  25.                     break; // We clearly cannot connect, try again later
  26.                 }
  27.             }
  28.             if(failedRow>5){
  29.                 // Sleeeeep
  30.                 // TODO: Actually sleep
  31.             }
  32.             if(!acceptMore && requests.isEmpty()){
  33.                 break;
  34.             }
  35.         }
  36.     }
Advertisement
Add Comment
Please, Sign In to add comment