2017-06-18 104 views
0

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

的问题是,其他服务是通过REST解决我的服务,它加载时。然后尝试回复(在不同的线程中),并在尝试回复尚未使用的资源和崩溃之一时尝试回复。

有没有一种方式,以“锁定”,而它加载,以便未来将其与外界的任何请求将返回“服务不可用”,而它在它的加载过程的服务?

有很多对服务的请求,我不wan't到一个“检查资源状况”的逻辑到每一个处理一个HTTP请求方法。我希望能够阻止所有请求,并在所有资源启动时解除阻止它们。

任何帮助将是伟大的。 (我还不太熟悉Spring)。

+0

是否有可能不生成REST服务线程,除非直到您的初始化逻辑返回true或false? –

+0

不幸的是,在正确的时刻,没有。 – elmekiesIsrael

回答

0

假设这些资源异步初始化,您可以编写一个FilterInterceptor来筛选请求,并在资源未加载时重新执行503。

Here's如何配置的过滤器的例子。如果您想要在资源级别处理/拦截请求(例如here),则甚至可以编写拦截器,但是,由于要过滤所有传入请求,因此我建议继续执行Filter