package eu.choreos.vv.loadgenerator.strategy; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Future; import org.apache.commons.math.random.RandomData; import org.apache.commons.math.random.RandomDataImpl; import eu.choreos.vv.loadgenerator.ParallelLoadGenerator; public class PoissonLoad extends LoadGenerationStrategy { private RandomData random; private long nextPoisson; @Override public void setup() throws Exception { random = new RandomDataImpl(); } @Override public void beforeRequest() throws Exception { nextPoisson = nextPoisson(); super.beforeRequest(); } @Override public void afterRequest() throws Exception { super.afterRequest(); sleep(nextPoisson - end + start); } private long nextPoisson() { return random.nextPoisson(delay); } }