从@Schedule方法调用@Async方法

时间:2016-09-07 15:15:44

标签: asynchronous spring-boot scheduler

我有一个调度程序,它每1秒监听一次队列(Priorityqueue不像mq / jms),一旦我得到了我感兴趣的消息,我想执行一些逻辑。

所以我有每秒运行的调度程序,因为我正在调用@Async注释的方法,假设一旦我调用该方法,调度程序将以其间隔返回运行。

下面是示例代码,不确定我使用的是正确的模式还是建议。想法是,一旦我们有消息,我们不应该等待prev处理,我们可以有多个线程处理它。

我正在使用Spring启动。

@Scheduled(fixedDelayString = "1000", initialDelay = 10000)
public void startScheduler() {

   Message msg = queue.peek();

   if(msg!=null){
      doProcessing(msg);
   }

}


@Async
public void doProcessing(Message msg){
// Do processing
// May take 5 seconds.
}   

0 个答案:

没有答案