在初始化时暂停弹簧服务

时间:2017-06-18 08:54:59

标签: java spring server jersey backend

我有一项依赖于多种资源的服务。 此服务具有初始化逻辑,用于检查这些资源是否已启动并正在运行,并相应地启动/停止服务。

问题是,其他服务在加载时通​​过REST解决我的服务问题。然后它尝试回复(在不同的线程中),当它发生时,它会尝试连接到一个尚未可用的资源和崩溃。

有没有办法锁定'服务在加载时,以便从外部发送的任何请求将返回“服务不可用”。虽然它正处于加载过程中?

对服务提出了很多要求,我不想添加“检查资源状态”。每个处理HTTP请求的方法的逻辑。我希望能够阻止所有请求,并在所有资源都启动时取消阻止它们。

任何帮助都会很棒。 (我对Spring还不是很熟悉。)

1 个答案:

答案 0 :(得分:0)

假设这些资源是异步初始化的,您可以编写FilterInterceptor来过滤请求,并在未加载资源时重新调整503。

Here's如何配置过滤器的示例。如果你想在资源级别处理/拦截请求,你甚至可以编写一个拦截器(例如here),但是,由于你想过滤所有传入的请求,我建议继续使用{{1} }。