Sti*_*oft 5 java spring-scheduled spring-boot spring-boot-test
语境
我正在开发一个 Spring Boot 项目,该项目大量使用 @Scheduled bean。我们编写了一个非常轻量级的类似事件源的框架,该框架依赖于数据库中的数据:每次检查数据库是否有新记录,这可能会导致触发这些新记录的处理程序。
我们编写集成测试:在数据库中创建一条新记录,等待处理程序拾取它并且数据库得到更新并验证数据库的新状态。
问题
在我们编写一个会弄脏 spring 上下文的测试之前,这一切都很好。上下文可以很好地重新创建,但旧上下文中的 @Scheduled 方法继续运行,从旧上下文而不是新上下文中执行逻辑。
我在这个小例子中演示了这个问题:https ://github.com/stainii/spring-boot-test-scheduled-bean-problem 。当您运行测试时(出于演示目的,最好按字母顺序排列),您将看到每个测试本身都运行良好,但是当需要重新创建上下文时,将运行 2 个计划 bean,而不是 1 个。
有谁知道这是否是预期的行为,以及当上下文被标记为脏时我们是否可以销毁 @Scheduled bean?
| 归档时间: |
|
| 查看次数: |
649 次 |
| 最近记录: |