我有一个用例,我在方法上有一个@Scheduled(fixedDelay = 1000)的类(比如run())。
我希望能够:
- 在运行时使用不同的bean名称启动此类的新实例(带有单例范围)。
- 在运行时选择性地终止实例(基于bean名称)。
- 暂停执行实例(基于bean名称)。
- 恢复之前暂停的实例的执行(基于bean名称)。
醇>
为了启动/终止这些单例,我可以使用BeanDefinitionRegistry的registerBeanDefinition& removeBeanDefinition方法分别。
问题:
- 在registerBeanDefinition之后,注册的bean会运行标有@Scheduled注释的方法吗?
- 在removeBeanDefinition之后,被删除的实例是否会停止执行标有@Scheduled注释的方法?
- 暂停和暂停的最佳方式是什么?恢复执行标有@Scheduled注释的方法。我总是可以公开一个方法,将一个标志设置为true,忙等待暂停,但是我可以使用容器提供的优雅方式或功能吗?
醇>