使用@Scheduled暂停/终止Spring @Component

时间:2012-09-28 08:02:41

标签: java spring scheduled-tasks

我有一个用例,我在方法上有一个@Scheduled(fixedDelay = 1000)的类(比如run())。

我希望能够:

  1. 在运行时使用不同的bean名称启动此类的新实例(带有单例范围)。
  2. 在运行时选择性地终止实例(基于bean名称)。
  3. 暂停执行实例(基于bean名称)。
  4. 恢复之前暂停的实例的执行(基于bean名称)。
  5. 为了启动/终止这些单例,我可以使用BeanDefinitionRegistry的registerBeanDefinition& removeBeanDefinition方法分别。

    问题:

    1. 在registerBeanDefinition之后,注册的bean会运行标有@Scheduled注释的方法吗?
    2. 在removeBeanDefinition之后,被删除的实例是否会停止执行标有@Scheduled注释的方法?
    3. 暂停和暂停的最佳方式是什么?恢复执行标有@Scheduled注释的方法。我总是可以公开一个方法,将一个标志设置为true,忙等待暂停,但是我可以使用容器提供的优雅方式或功能吗?

0 个答案:

没有答案