groovy thread for urls

Posted by Srinath on Stack Overflow See other posts from Stack Overflow or by Srinath
Published on 2010-04-27T10:21:22Z Indexed on 2010/04/27 10:23 UTC
Read the original article Hit count: 384

Filed under:
|

I wrote logic for testing urls using threads. This works good for less number of urls and failing with more than 400 urls to check .

class URL extends Thread{
def valid def url

URL( url ) {
    this.url = url
}

void run() {
    try {
        def connection = url.toURL().openConnection()
    connection.setConnectTimeout(10000)
        if(connection.responseCode == 200 ){
            valid = Boolean.TRUE
        }else{
            valid = Boolean.FALSE
        }
    } catch ( Exception e ) {
        valid = Boolean.FALSE
    }
}

}

def threads = [];
urls.each { ur ->
def reader = new URL(ur)
reader.start()
threads.add(reader);
}

while (threads.size() > 0) {
for(int i =0; i < threads.size();i++) {
def tr = threads.get(i);
if (!tr.isAlive()) {
if(tr.valid == true){
threads.remove(i);
i--;
}else{
threads.remove(i);
i--;
}
}
}

Could any one please tell me how to optimize the logic and where i was going wrong .

thanks in advance.

© Stack Overflow or respective owner

Related posts about groovy

Related posts about thread