小编sch*_*e92的帖子

Bean生命周期管理Spring Boot

我目前正在尝试将Spring Boot应用程序部署到外部Tomcat实例中,并且遇到了一些关于如何最好地管理某些事物的实例化的问题.

按照目前的结构,我有类似的东西

public class MyClass extends SpringBootServletInitializer{


@Bean
public ThreadPool pool(){
    return new ThreadPool();
}

@Bean
public BackgroundThread setupInbox() {
    BackgroundThread inbox = new BackgroundThread(pool());
    inbox.start();
    return inbox;
}

@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(MyClass.class);
}

public static void main(String[] args) throws Exception {
    SpringApplication.run(MyClass.class, args);
}


}
Run Code Online (Sandbox Code Playgroud)

其中BackgroundThread是一个正在为新作业侦听AMQP类型消息队列的线程.我知道Spring提供了一些RabbitMQ方法来实现这一点,但我们并没有使用Rabbit,因此它无济于事.

正在部署的*.war文件的整个目的是通过消息传递向线路暴露一些功能,所以我的问题是在Spring的生命周期中实例化,启动然后销毁BackgroundThread的最佳方法是什么?XML配置?

java spring tomcat

6
推荐指数
1
解决办法
8349
查看次数

Celery 与 Redis 对比 vs 单独 Redis

我无法理解使用 Celery 的优势是什么。我知道你可以将 Celery 与 Redis、RabbitMQ 等一起使用,但为什么我不直接获取这些消息队列服务的客户端,而不是将 Celery 放在它前面呢?

python java messaging rabbitmq celery

0
推荐指数
1
解决办法
1239
查看次数

标签 统计

java ×2

celery ×1

messaging ×1

python ×1

rabbitmq ×1

spring ×1

tomcat ×1