2013-07-31 40 views
0

说我是使用上的功能@Scheduled注释应用注释。但我希望该注释只有在属性文件中定义了某些属性时才会生效。我们如何配置该场景? 使用案例:相同的应用程序部署在多个服务器上,但@Scheduled应该是活跃,只有一台服务器上。春:基于性能

回答

0

我的想法:

  • 使用一个额外的bean(MyScheduler),包含什么比@Schedule注释的方法更多。此方法将调用转发给您的真实服务。
  • 然后注释MyScheduler类@Component和@profile
  • 使用属性文件来启用或禁用此配置文件

素描:

@Component 
@Profile("onTHEserver") 
public class MyScheduler{ 

    @Autowire 
    private RealService realService; 

    @Schedule(cron="1****") { 
     realService.doSomething(); 
    } 
}