Thread pool added.
This commit is contained in:
parent
ad99f1aaa3
commit
147c40166d
|
@ -80,7 +80,7 @@ public class HomeController {
|
||||||
scenario.getUserBehaviors()[2].getParameters()[0].setKey("time");
|
scenario.getUserBehaviors()[2].getParameters()[0].setKey("time");
|
||||||
scenario.getUserBehaviors()[2].getParameters()[0].setValue("1000");
|
scenario.getUserBehaviors()[2].getParameters()[0].setValue("1000");
|
||||||
|
|
||||||
this.getScenarioEngine().runScenario(scenario);
|
this.getScenarioEngine().runScenario(scenario, 1000);
|
||||||
return "It works!";
|
return "It works!";
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -6,17 +6,16 @@ import org.bench4q.agent.plugin.Plugin;
|
||||||
@Plugin("Http")
|
@Plugin("Http")
|
||||||
public class HttpPlugin {
|
public class HttpPlugin {
|
||||||
public HttpPlugin() {
|
public HttpPlugin() {
|
||||||
System.out.println("Http Plugin init...");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Behavior("Get")
|
@Behavior("Get")
|
||||||
public void get(String url, String content) {
|
public void get(String url, String content) {
|
||||||
System.out.println("HTTP GET, url=" + url + ", content=" + content);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Behavior("Post")
|
@Behavior("Post")
|
||||||
public void post(String url, String content, int code) {
|
public void post(String url, String content, int code) {
|
||||||
System.out.println("HTTP POST, url=" + url + ", content=" + content
|
|
||||||
+ ", code=" + code);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,11 +6,11 @@ import org.bench4q.agent.plugin.Plugin;
|
||||||
@Plugin("ConstantTimer")
|
@Plugin("ConstantTimer")
|
||||||
public class ConstantTimerPlugin {
|
public class ConstantTimerPlugin {
|
||||||
public ConstantTimerPlugin(int time) {
|
public ConstantTimerPlugin(int time) {
|
||||||
System.out.println("Constant Plugin init... time=" + time);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Behavior("Sleep")
|
@Behavior("Sleep")
|
||||||
public void sleep(int time) {
|
public void sleep(int time) {
|
||||||
System.out.println("Sleeping for " + time + "...");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
package org.bench4q.agent.scenario;
|
package org.bench4q.agent.scenario;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.ExecutorService;
|
||||||
|
import java.util.concurrent.Executors;
|
||||||
|
|
||||||
import org.bench4q.agent.plugin.PluginManager;
|
import org.bench4q.agent.plugin.PluginManager;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -20,7 +23,28 @@ public class ScenarioEngine {
|
||||||
this.pluginManager = pluginManager;
|
this.pluginManager = pluginManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void runScenario(final Scenario scenario, int threadCount) {
|
||||||
|
System.out.println("Start at:" + new Date(System.currentTimeMillis()));
|
||||||
|
ExecutorService executorService = Executors
|
||||||
|
.newFixedThreadPool(threadCount);
|
||||||
|
int i;
|
||||||
|
Runnable runnable = new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
doRunScenario(scenario);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
for (i = 0; i < threadCount; i++) {
|
||||||
|
executorService.execute(runnable);
|
||||||
|
}
|
||||||
|
executorService.shutdown();
|
||||||
|
System.out.println("End at:" + new Date(System.currentTimeMillis()));
|
||||||
|
}
|
||||||
|
|
||||||
public void runScenario(Scenario scenario) {
|
public void runScenario(Scenario scenario) {
|
||||||
|
this.doRunScenario(scenario);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void doRunScenario(Scenario scenario) {
|
||||||
ScenarioContext scenarioContext = new ScenarioContext();
|
ScenarioContext scenarioContext = new ScenarioContext();
|
||||||
scenarioContext.setPlugins(new HashMap<String, Object>());
|
scenarioContext.setPlugins(new HashMap<String, Object>());
|
||||||
for (UsePlugin usePlugin : scenario.getUsePlugins()) {
|
for (UsePlugin usePlugin : scenario.getUsePlugins()) {
|
||||||
|
|
Loading…
Reference in New Issue