首页 > 作文

SpringBoot定时任务调度与爬虫的配置实现

更新时间:2023-04-04 13:52:39 阅读: 评论:0

springtask

springtask是spring自主研发的轻量级定时任务工具,相比于quartz更加简单方便,且不需要引入其他依赖即可使用。

springtask的配置

在配置类中添加一个@enablescheduling注解即可开启springtask的定时任务

import org.apache.commons.lang3.concurrent.basicthreadfactory;@configuration@enablescheduling@componentscan(bapackages = {"com.xxx.xxx"})public class taskconfig implements schedulingconfigurer {    @override    public void configuretasks(scheduledtaskregistrar taskregistrar) {        taskregistrar.t飞天电影scheduler(taskexecutor());    }    @bean    public executor taskexecutor() {        return new scheduledthreadpoolexecutor(20, new basicthreadfactory.builder().namingpattern("job-thread-%d").build());    }}

设置定时任务

@component@slf4jpublic class taskjob {    /**     * @scheduled 设置     */    @scheduled(cron = "0/10 * * * * ?")    public void job1() {        //具体处理逻辑        log.info("【job1】开始执行:{}", dateutil.formatdatetime(new date()));    }}

cron的语法格式及说明

conds minutes hours dayofmonth month dayofweek

时间元素可出现的字符有效数值范围conds, – * /0-59minutes, – * /0-59hours, – * /0-23dayofmonth, – * / ? l w0-31month, – * /1-12dayofweek, – * / ? l #1-7或sun-sat

cron格式中特殊字符说明

字符作用举例,列出枚举值在minutes域使用5,10,表示在5分和10分各触发一次|表示触发范围| 在minutes域使用5-10,表示从5分到10分钟每分钟触发一次|匹配任意值| 在minutes域使用*, 表示每分钟都会触发一次
/ |起始时间开始触发,每隔固定时间触发一次| 在minutes域使用5/10,表示5分时触发一次,每10分钟再触发一次
? |在dayofmonth和dayofweek中,用于匹配任意值| 在dayofmonth域使用?,表示每天都触发一次

|在dayofmonth中,确定第几个星期几| 1#3表示第三个星期日

l |表示最后| 在dayofweek中使用5l,表示在最后一个星期四触发
w |表示有效工作日(周一到周五)| 在dayofmonth使用5w,如果5日是星期六,则将在最近的工作日4日触发一次

使用举例

"0 0 10,14,16 * * ?" 每天上午10点,下午2点,4点 "0 0/30 9-17 * * ?" 朝九晚五工作时间内每半小时 "0 0 12 ? * wed" 表示每个星期三中午12点 "0 0 12 * * ?" 每天中午12点触发 "0 15 10 ? * *" 每天上午10:15触发 "0 15 10 * * ?" 每天上午10:15触发 "0 15 10 * * ? *" 每天上午10:15触发 "0 15 10 * * ? 2005" 2005年的每天上午10:15触发 "0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发 "0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发 "0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 "0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发 "0 10,44 14 ? 3 wed" 每年三月的星期三的下午2:10和2:44触发 "0 15 10 ? * mon-fri" 周一至周五的上午10:15触发 "0 15 10 15 * ?" 每月15日上午10:15触发 "0 15 10 l * ?" 每月最后一日的上午10:15触发 "0 15 10 ? * 6l" 每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6l 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发 "0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发"30 * * * * ?" 每半分钟触发任务"30 10 * * * ?" 每小时的10分30秒触发任务"30 10 1 * * ?" 每天1点10分30秒触发任务"30 10 1 20 * ?" 每月20号1点10分30秒触发任务"30 10 1 20 10 ? *" 每年10月20号1点10分30秒触发任务"30 10 1 20 10 ? 2011" 2011年10月20号1点10分30秒触发任务"30 10 1 ? 10 * 2011" 2011年10月每天1点10分30秒触发任务"30 10 1 ? 10 sun 2011" 2011年10月每周日1点10分30秒触发任务"15,30,45 * * * * ?" 每15秒,30秒,45秒时触发任务"15-45 * * * * ?" 15到45秒内,每秒都触发任务"15/5 * * * * ?" 每分钟的每15秒开始触发,每隔5秒触发一次"15-30/5 * * * * ?" 每分钟的15秒到30秒之间开始触发,每隔5秒触发一次"0 0/3 * * * ?" 每小时的第0分0秒开始,每三分钟触发一次"0 15 10 ? * mon-放射源管理fri" 星期一到星期五的10点15分0秒触发任黑字成语务"0 15 10 l * ?" 每个月最后一天的10点15分0秒触发任务"0 15 10 lw * ?" 每个月最后一个工作日的10点15分0秒触发任务"0 15 10 ? * 5l" 每个月最后一个星期四的10点15分0秒触发任务"0 15 10 ? * 5#3" 每个月第三周的星期四的10点15分0秒触发任务"0 0 0 * * ?" 每天晚上12点触发任务

爬虫

使用webmagic开发爬虫

流程:

(1)分析目标网页源码(2)继承pageprocessor接口编写自己的处理类,process是定制爬虫逻辑的核心接口,在这里编写抽取逻辑(3)继承pipeline接口编写自己的存储类

代码:

https:写秋天的文章//github中国平原有哪些.com/flyuz/spring-learning

到此这篇关于springboot定时任务调度与爬虫的实现的文章就介绍到这了,更多相关springboot定时任务内容请搜索www.887551.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持www.887551.com!

本文发布于:2023-04-04 13:52:37,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/fbe2a12b235ab110bf7059ed915ba981.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:SpringBoot定时任务调度与爬虫的配置实现.doc

本文 PDF 下载地址:SpringBoot定时任务调度与爬虫的配置实现.pdf

下一篇:返回列表
标签:上午   下午   星期   爬虫
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图