繁体   English   中英

安排单个Java进程的多个实例

[英]Scheduling multiple instance of a single java process

我们有一个Java进程,我们希望对其进行负载测试。 此过程对外部供应商进行REST调用。 我们想监视周末的表现。 应该在运行的大约1000个实例中对其进行测试。 有哪些可能的方法?

我有2个解决方案:

  1. 在多个终端中启动该过程,但是鉴于我们要针对1000个实例执行此操作是不切实际的。

  2. 编写一个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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM