首页 > 解决方案 > 组件相互阻塞

问题描述

我是使用 SpringBoot 开发的新手,所以也许这个问题听起来很傻,但我希望有人能够向我展示我的方式的错误。

我有一个包含 4 个组件的 SpringBoot 应用程序。其中一个处理输入文件并将记录写入数据库,而另外三个读取记录,根据组件配置对其进行处理并将结果发送到 Web 服务。

我的问题是有时要处理很多文件,因此“阅读器”组件需要更长的时间才能完成。我注意到的是,在它运行时,其他组件都没有启动。由于数据对时间比较敏感,因此处理组件定期异步运行对我来说很重要。

我在主应用程序中使用了@EnableAsync,并且我已将所有组件标记为@Async,但阻塞问题仍然存在。我的印象是计划的组件将彼此独立地执行。组件之间没有共享资源,即使它们是,我也会理解组件启动并阻塞,但组件(线程)根本没有启动(我有一个跟踪条目作为每个组件的第一行)。

我应该看什么?这是它应该如何工作的吗?如果是,我将从组件启动异步线程或找到其他方式,但我认为我可以通过使用 SpringBoot 来解决所有这些问题。

任何和所有的答案都将非常感激!

标签: spring-boot

解决方案


推荐阅读