Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Override
- public void run(){
- while(true){
- int failedRow = 0;
- while(!requests.isEmpty()){
- Request request = requests.poll();
- List<String> server = request.getServers();
- if(server == null){
- server = new ArrayList<String>(this.connections.keySet());
- }
- List<Variable> v = request.getVariables();
- Variable[] vars = v == null ? null : v.toArray(new Variable[v.size()]);
- for(String serverName : server){
- ServerConnection connection = this.connections.get(serverName);
- ServerResponse response = connection.attemptRequest(request.getType(), vars);
- if(response.getErrorCode() < 0){
- request.error("Failed to connect to server. Adding request to back of queue", RequestError.CANNOT_CONNECT);
- requests.add(request);
- failedRow++;
- }else{
- request.done(response);
- }
- }
- if(failedRow>5){
- break; // We clearly cannot connect, try again later
- }
- }
- if(failedRow>5){
- // Sleeeeep
- // TODO: Actually sleep
- }
- if(!acceptMore && requests.isEmpty()){
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment