我是使用SpringBoot进行开发的新手,所以也许这个问题听起来很愚蠢,但我希望有人能够向我展示我的方式中的错误。
我有一个带有4个组件的SpringBoot应用程序。其中一个处理输入文件并将记录写入数据库,而其他三个读取记录,根据组件配置对其进行处理并将结果发送到Web服务。
我的问题是,有时要处理许多文件,因此“阅读器”组件需要花费更长的时间才能完成。我注意到的是,当它运行时,其他任何组件都没有启动。由于数据是相对时间敏感的,因此对我来说重要的是,处理组件定期且异步地运行。
我在主应用程序中使用了@EnableAsync,并且已将所有组件标记为@Async,但是仍然会出现阻塞问题。我的印象是计划的组件将彼此独立地执行。组件之间没有共享资源,即使它们是共享的,我也可以理解,一个组件可以启动和阻止,但是这些组件(线程)根本没有启动(我有一个跟踪条目作为每个组件的第一行)。 / p>
我应该看什么?这是应该如何工作的吗?如果是,那么我将从组件启动异步线程或找到另一种方法,但是我认为可以通过使用SpringBoot而无需所有这些方法。
任何答案都将不胜感激!