spring-boot - 组件相互阻塞
问题描述
我是使用 SpringBoot 开发的新手,所以也许这个问题听起来很傻,但我希望有人能够向我展示我的方式的错误。
我有一个包含 4 个组件的 SpringBoot 应用程序。其中一个处理输入文件并将记录写入数据库,而另外三个读取记录,根据组件配置对其进行处理并将结果发送到 Web 服务。
我的问题是有时要处理很多文件,因此“阅读器”组件需要更长的时间才能完成。我注意到的是,在它运行时,其他组件都没有启动。由于数据对时间比较敏感,因此处理组件定期异步运行对我来说很重要。
我在主应用程序中使用了@EnableAsync,并且我已将所有组件标记为@Async,但阻塞问题仍然存在。我的印象是计划的组件将彼此独立地执行。组件之间没有共享资源,即使它们是,我也会理解组件启动并阻塞,但组件(线程)根本没有启动(我有一个跟踪条目作为每个组件的第一行)。
我应该看什么?这是它应该如何工作的吗?如果是,我将从组件启动异步线程或找到其他方式,但我认为我可以通过使用 SpringBoot 来解决所有这些问题。
任何和所有的答案都将非常感激!
解决方案
推荐阅读
- python - 带有反例的 Keras 自定义损失函数
- c# - 派生接口之间没有隐式引用转换
- java - 在 Start-Process 控制台中执行命令
- javascript - 为什么材质表渲染失败?
- python - Weird memory usage of looped pandas GroupBy function
- reactjs - redux-saga 函数不发送控制台日志
- max - Power BI Dax 选择与度量的最大值对应的行值
- c# - httpClient.GetAsync C# .NET 4.8 中的内存泄漏
- matlab - 错误:括号表达式中的所有表必须具有相同的变量名
- reactjs - Firebase - 集合组“orderBy”不会显示任何内容