爬虫自动化20200719
自动爬虫使用了spring boot的Quartz定时任务方法。
本文学习借鉴了这篇博客,感谢 gnail_oug。
添加quartz依赖
在pom.xml的dependencies下添加一个quartz依赖
<!-- quartz -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-quartz</artifactId>
</dependency>
编辑需要自动化的类
- 导入quartz包
- extends QuartzJobBean。
- override executeInternal method
// 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
}
}
配置定时任务
- 创建config文件
- 标记 @Configuration
- 创建一个返回JobDetail类的方法
- 创建一个返回Triger类的方法
// 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();
}
}
小总结
这里只有方法,没有解释,停留在知其然不知其所以然的层面上,未来有机会再深究其内部运行机制。
博主简介:
座右铭:始于兴趣,源于热爱,成于投入。
爱丁堡大学 人工智能专业。热爱读书和写作,虽然写得不好但还会一直写。喜爱电音的渣渣音乐家,手不是很残的业余画手,有点热心过头的朋友。
所有文章都在个人博客上:discover304.top
也有一些在 CSDN 上:discover304
公众号:白泽百泽(注:内容和博客是一样的)