广告
返回顶部
首页 > 资讯 > 后端开发 > Python >SpringBoot定时任务调度与爬虫的配置实现
  • 496
分享到

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

2024-04-02 19:04:59 496人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

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

springTask

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

SpringTask的配置

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

import org.apache.commons.lang3.concurrent.BasicThreadFactory;
@Configuration
@EnableScheduling
@ComponentScan(basePackages = {"com.xxx.xxx"})
public class TaskConfig implements SchedulinGConfigurer {
    @Override
    public void configureTasks(ScheduledTaskReGIStrar taskRegistrar) {
        taskRegistrar.setScheduler(taskExecutor());
    }
    @Bean
    public Executor taskExecutor() {
        return new ScheduledThreadPoolExecutor(20, new BasicThreadFactory.Builder().namingPattern("Job-Thread-%d").build());
    }
}

设置定时任务

@Component
@Slf4j
public class TaskJob {
    
    @Scheduled(cron = "0/10 * * * * ?")
    public void job1() {
        //具体处理逻辑
        log.info("【job1】开始执行:{}", DateUtil.fORMatDateTime(new Date()));
    }
}

Cron的语法格式及说明

Seconds Minutes Hours DayofMonth Month DayofWeek

时间元素可出现的字符有效数值范围
Seconds, - * /0-59
Minutes, - * /0-59
Hours, - * /0-23
DayofMonth, - * / ? L W0-31
Month, - * /1-12
DayofWeek, - * / ? 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定时任务内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: SpringBoot定时任务调度与爬虫的配置实现

本文链接: https://www.lsjlt.com/news/162227.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SpringBoot定时任务调度与爬虫的配置实现
    SpringTask SpringTask是Spring自主研发的轻量级定时任务工具,相比于Quartz更加简单方便,且不需要引入其他依赖即可使用。 SpringTask的配置 在配...
    99+
    2022-11-12
  • 如何实现PHP底层的定时任务调度
    实现PHP底层的定时任务调度文章摘要:无论是网站还是后台任务,在很多场景下都需要定时执行某些特定的操作,如发送邮件、数据备份等。PHP作为一种流行的开发语言,本身并没有内置的定时任务调度功能,但我们可以借助一些工具或者编写代码来实现定时任务...
    99+
    2023-11-08
    PHP定时任务 调度器 底层操作
  • Springboot自带定时任务实现动态配置Cron参数方式
    目录Springboot自带定时任务实现动态配置Cron参数SpringBoot定时任务的四种实现方式(主要)spring动态配置cron表达式,不需要停服SchedulingCon...
    99+
    2022-11-12
  • laravel 进阶系列 —— 定时任务调度在 Laravel 中的实现
    简介 Cron 是 UNIX、SOLARIS、LINUX 下的一个十分有用的工具,通过 Cron 脚本能使计划任务定期地在系统后台自动运行。这种计划任务在 UNIX、SOLARIS、LINUX下术语为 Cron Jobs。Crontab ...
    99+
    2023-09-22
    laravel php
  • Spring内置任务调度实现添加、取消与重置的示例
    这篇文章将为大家详细讲解有关Spring内置任务调度实现添加、取消与重置的示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。实现方法如下首先,我们需要启用Spring的任务调度<xml v...
    99+
    2023-05-31
    spring
  • Springboot自带定时任务实现动态配置Cron参数方式是是什么
    这篇文章主要讲解了“Springboot自带定时任务实现动态配置Cron参数方式是是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Springboot自带定时任务实现动态配置Cron参数...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作