我正在使用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());
}
}
}
答案 0 :(得分:0)
这些解决方案根本不同。
计划服务在上次运行后每隔n毫秒启动并处理可用的任何内容。它不能保证及时处理,如果要处理的数据量增加(并且处理具有复杂程度),则可能无法扩展。
我倾向于倾向于JMS。首先,消息在进入时被处理,推送到监听器,而不是像在服务中那样被轮询。其次,如果需要,您可以在水平和垂直方向上扩展消息,为您提供更多旋钮,以确保实际处理不会压倒应用程序。
基本问题可能是:您的要求是什么?