可以弹簧提供像作业队列这样的概念

时间:2016-05-24 06:10:30

标签: spring spring-mvc

示例就像我有一份25个工作,我希望同时执行3个作业,然后完成三个作业中的一个,然后从队列中接下来一个接收。

3 个答案:

答案 0 :(得分:5)

您可以使用标准Java库中的类来执行此操作 - 您不需要Spring。使用ExecutorService,例如:

class MyJob extends Runnable {

    private final String message;

    MyJob(String message) {
        this.message = message;
    }

    @Override
    public void run() {
        System.out.println(message);
    }
}

public class Example {

    public static void main(String[] args) {
        // Executor service with 3 threads
        ExecutorService executorService = Executors.newFixedThreadPool(3);

        // Submit jobs to be executed
        executorService.execute(new MyJob("testing"));
        executorService.execute(new MyJob("one"));
        executorService.execute(new MyJob("two"));
        executorService.execute(new MyJob("three"));

        // ...
    }
}

答案 1 :(得分:1)

Spring通过Quartz Scheduler为作业计划提供支持。有关Spring如何使用Quartz的更多信息,您可以浏览official spring documentation

除此之外,如果你想要一些现成的例子,你可以通过,Spring 3 + Quartz SchedulerSpring 4 + Quartz Scheduler

答案 2 :(得分:0)

我建议你使用Spring启动: 这是使用Annotation with Spring进行调度的良好开端 https://spring.io/guides/gs/scheduling-tasks/

以下是使用Quartz进行Spring Boot的一个很好的简介:http://de.slideshare.net/davidkiss/spring-boot-with-quartz

祝你好运!