Spring 定期启动 activemq 保持接收器 运行
Spring boot acitvemq keep receiver running periodically
我已经配置了一个 spring 引导应用程序,它在 运行 时从队列中读取消息并相应地处理它们。
我还将并发标志配置为 运行 多个这样的阅读器。
然而,在一个理想的世界中,我希望接收者像线程一样保持 运行ning 并继续检查任何消息。
我的问题是,是否有任何方法可以在 spring 引导中配置它,或者我必须回退到使用执行程序或其他任何东西的线程机制。
谢谢,
- Vaibhav
我从 Spring 引导中找到了一个很好的方法,并发性当然是由并发属性决定的,例如
@JmsListener(destination = "myqueue", concurrency="2-10")
但是下面的线程部分是一种巧妙的方法:
@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@EnableJms
public class MyApplication implements CommandLineRunner{
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("Joining Thread ctrl+c to bring down application");
Thread.currentThread().join();
}
}
我已经配置了一个 spring 引导应用程序,它在 运行 时从队列中读取消息并相应地处理它们。 我还将并发标志配置为 运行 多个这样的阅读器。 然而,在一个理想的世界中,我希望接收者像线程一样保持 运行ning 并继续检查任何消息。 我的问题是,是否有任何方法可以在 spring 引导中配置它,或者我必须回退到使用执行程序或其他任何东西的线程机制。 谢谢, - Vaibhav
我从 Spring 引导中找到了一个很好的方法,并发性当然是由并发属性决定的,例如
@JmsListener(destination = "myqueue", concurrency="2-10")
但是下面的线程部分是一种巧妙的方法:
@SpringBootApplication
@EnableAutoConfiguration(exclude={MongoAutoConfiguration.class, MongoDataAutoConfiguration.class})
@EnableJms
public class MyApplication implements CommandLineRunner{
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
@Override
public void run(String... arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("Joining Thread ctrl+c to bring down application");
Thread.currentThread().join();
}
}