[英]Scheduling multiple instance of a single java process
我们有一个Java进程,我们希望对其进行负载测试。 此过程对外部供应商进行REST调用。 我们想监视周末的表现。 应该在运行的大约1000个实例中对其进行测试。 有哪些可能的方法?
我有2个解决方案:
在多个终端中启动该过程,但是鉴于我们要针对1000个实例执行此操作是不切实际的。
编写一个shell脚本来实例化它,以进行克隆。
有什么更好的解决方案吗?
任何图书馆都会有所帮助。
下面是我们要安排的示例代码:
public static void main(String[] args) {
try {
getToken();
Thread.sleep(10000);
} catch (Exception e) {
e.printStackTrace();
}
final Timer timer = new Timer();
Timer stopTaskTimer = new Timer();
TimerTask task = new TimerTask() {
@Override
public void run() {
try {
/*getToken();
Thread.sleep(15000);*/
getResponse("#############");
} catch (Exception e) {
e.printStackTrace();
}
}
};
TimerTask stopTask = new TimerTask() {
@Override
public void run() {
timer.cancel();
}
};
timer.scheduleAtFixedRate(task, 0, 60000);
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date = sdf.parse("2015-06-20 19:41:30");
//stopTaskTimer.schedule(stopTask, date);
} catch (ParseException e) {
e.printStackTrace();
}
}
使用JMeter或其他类似的负载测试工具。 它支持您开箱即用的所有需求。
@ h22可能有更好的解决方案,但可以回答您的问题:
将代码从main移到“ run”方法中,并使您的类实现“ runnable”,然后在“ main”中循环,以启动所需数量的java.lang.Thread https://docs.oracle.com/javase /7/docs/api/java/lang/Thread.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.