You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gcube-cms-suite/use-cases/src/test/java/org/gcube/application/cms/usecases/StressTest.java

55 lines
1.8 KiB
Java

package org.gcube.application.cms.usecases;
import lombok.extern.slf4j.Slf4j;
import org.gcube.application.cms.tests.TokenSetter;
import org.gcube.application.cms.tests.model.TestModel;
import org.gcube.application.geoportal.common.model.legacy.Concessione;
import org.gcube.application.geoportal.common.rest.MongoConcessioni;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
import static org.gcube.application.geoportal.client.GeoportalAbstractPlugin.mongoConcessioni;
@Slf4j
public class StressTest {
private static ExecutorService service = Executors.newFixedThreadPool(100);
public static void main(String[] args) {
TokenSetter.set("/gcube/devsec/devVRE");
AtomicLong executed=new AtomicLong(0);
int numRequests=10000;
for(int i=0;i<numRequests;i++){
service.submit(new Runnable() {
@Override
public void run() {
try{
MongoConcessioni client=mongoConcessioni().build();
Concessione c =TestModel.prepareEmptyConcessione();
c.setNome("Stress test");
client.createNew(c);
}catch(Throwable t){
System.err.println(t);
}finally {
log.info("Executed "+executed.incrementAndGet());
}
}
});
}
try{
while(!service.awaitTermination(1, TimeUnit.MINUTES)){
log.info("Waiting termination, executed {} out of {}",executed.get(),numRequests);
}
}catch (InterruptedException e){
}
System.out.println("DONE");
}
}