自动爬虫使用了spring boot的Quartz定时任务方法。
本文学习借鉴了这篇博客,感谢 gnail_oug。
在pom.xml的dependencies下添加一个quartz依赖
<!-- quartz -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
// package XXXXX.XXXX.XXX;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.springframework.scheduling.quartz.QuartzJobBean;
public class ClassName extends QuartzJobBean{
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
//your code
}
}
// package XXXX.XXX.XX;
import com.bot.afvsr.services.impl.NewsServiceImpl;
import org.quartz.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class QuartzConfig {
@Bean
public JobDetail saveNews() {
return JobBuilder.newJob(NewsServiceImpl.class).withIdentity("saveJsonData").storeDurably().build();
}
@Bean
public Trigger saveNewsTrigger1() {
//10分钟执行一次
SimpleScheduleBuilder scheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
.withIntervalInMinutes(10)
.repeatForever();
return TriggerBuilder.newTrigger().forJob(saveNews())
.withIdentity("saveJsonData")
.withSchedule(scheduleBuilder)
.build();
}
}
这里只有方法,没有解释,停留在知其然不知其所以然的层面上,未来有机会再深究其内部运行机制。