天天看點

飛5的Spring Boot2(38)- 排程

Hazelcast

如果添加hazelcast依賴,Spring Boot将自動配置一個HazelcastInstance,你可以注入到應用中,HazelcastInstance執行個體隻有存在相關配置時才會建立。 如果定義了com.hazelcast.config.Configbean,則Spring Boot将使用它。如果你的配置指定了執行個體的名稱,Spring Boot将嘗試定位已存在的而不是建立一個新執行個體。你可以在配置中指定将要使用的hazelcast.xml配置檔案:

1spring.hazelcast.config=classpath:config/my-hazelcast.xml      

否則,Spring Boot嘗試從預設路徑查找Hazelcast配置,也就是hazelcast.xml所在的工作路徑或classpath的根路徑。Spring Boot也會檢查是否設定hazelcast.config系統屬性,具體參考Hazelcast文檔。

注意

Spring Boot為Hazelcast提供了緩存支援,如果開啟緩存的話,HazelcastInstance執行個體将自動包裝進一個CacheManager實作中。

Quartz Scheduler

Spring Boot為使用Quartz排程程式提供了一些便利 ,包括 spring-boot-starter-quartz“Starter”。如果Quartz可用,Scheduler則會自動配置a(通過SchedulerFactoryBean抽象)。

飛5的Spring Boot2(38)- 排程

以下類型的豆類會自動拾取并與以下類型相關聯 Scheduler:

  • JobDetail:定義一個特定的Job。JobDetail可以使用JobBuilderAPI 建構執行個體 。
  • Calendar。
  • Trigger:定義特定作業何時被觸發。

預設情況下,使用記憶體JobStore。但是,如果DataSource應用程式中有可用的bean,并且該 spring.quartz.job-store-type屬性已相應配置,則可以配置基于JDBC的存儲,如以下示例所示:

1spring.quartz.job-store-type = jdbc      

使用JDBC存儲時,可以在啟動時初始化模式,如以下示例所示:

1spring.quartz.jdbc.initialize-schema = always      
1public class SampleJob extends QuartzJobBean {
 2    private MyService myService;
 3    private String name;
 4    // Inject "MyService" bean
 5    public void setMyService(MyService myService) { ... }
 6    // Inject the "name" job data property
 7    public void setName(String name) { ... }
 8    @Override
 9    protected void executeInternal(JobExecutionContext context)
10            throws JobExecutionException {
11        ...
12    }
13}