Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
调度单个java进程的多个实例_Java_Scheduled Tasks_Scheduling_Scheduler_Job Scheduling - Fatal编程技术网

调度单个java进程的多个实例

调度单个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 {

我们有一个Java进程,我们希望对其执行负载测试。此流程向外部供应商发出REST调用。我们想监测周末的表现。应该使用大约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();
        }
    
    }
    

    使用或其他类似的负载测试工具。它支持所有您需要的开箱即用

    @h22可能有更好的解决方案,但要回答您的问题:


    将代码从main移到“run”方法中,使类实现“runnable”,然后在“main”中创建一个循环,以启动所需的java.lang.Thread

    代码片段可能会很有用。一般来说,查看“Thread”类。添加了一个示例代码段