调度单个java进程的多个实例
我们有一个Java进程,我们希望对其执行负载测试。此流程向外部供应商发出REST调用。我们想监测周末的表现。应该使用大约1000个正在运行的流程实例对其进行测试。可能的方法是什么 我有两种解决方案:调度单个java进程的多个实例,java,scheduled-tasks,scheduling,scheduler,job-scheduling,Java,Scheduled Tasks,Scheduling,Scheduler,Job Scheduling,我们有一个Java进程,我们希望对其执行负载测试。此流程向外部供应商发出REST调用。我们想监测周末的表现。应该使用大约1000个正在运行的流程实例对其进行测试。可能的方法是什么 我有两种解决方案: 在多个终端中启动该过程,但考虑到我们希望 举例来说,这样做是不现实的 编写一个shell脚本来实例化它,克隆它 有更好的解决方案吗? 任何图书馆都会有帮助 下面是我们要安排的示例代码: public static void main(String[] args) { try {
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();
}
}
使用或其他类似的负载测试工具。它支持所有您需要的开箱即用 @h22可能有更好的解决方案,但要回答您的问题:
将代码从main移到“run”方法中,使类实现“runnable”,然后在“main”中创建一个循环,以启动所需的java.lang.Thread代码片段可能会很有用。一般来说,查看“Thread”类。添加了一个示例代码段