哪一个选择Betweeen Spring调度程序和JMS?和他们之间的区别

时间:2016-11-10 08:05:48

标签: spring jms spring-async

我正在使用Spring调度程序和JMS,哪种方法更适合调度。

@Service
public class ScheduledProcessor implements Processor {

    private final AtomicInteger counter = new AtomicInteger();

    @Autowired
    private Worker worker;

    @Scheduled(fixedDelay = 30000)
    public void process() {
        System.out.println("processing next 10 at " + new Date());
        for (int i = 0; i < 10; i++) {
            worker.work(counter.incrementAndGet());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这些解决方案根本不同。

计划服务在上次运行后每隔n毫秒启动并处理可用的任何内容。它不能保证及时处理,如果要处理的数据量增加(并且处理具有复杂程度),则可能无法扩展。

我倾向于倾向于JMS。首先,消息在进入时被处理,推送到监听器,而不是像在服务中那样被轮询。其次,如果需要,您可以在水平和垂直方向上扩展消息,为您提供更多旋钮,以确保实际处理不会压倒应用程序。

基本问题可能是:您的要求是什么?