Spring内置的Spring Task,这是Spring3.0加入的定时任务功能。

使用注解的方式定时启动爬虫进行数据爬取。

我们使用的是@Scheduled注解,其属性如下:

1)cron:cron表达式,指定任务在特定时间执行

2)fixedDelay上一次任务执行完后多久再执行参数类型为long,单位ms

3)fixedDelayString:与fixedDelay含义一样,只是参数类型变为String

4)fixedRate:按一定的频率执行任务,参数类型为long,单位ms

5)fixedRateString: 与fixedRate的含义一样,只是将参数类型变为String

6)initialDelay:延迟多久再第一次执行任务,参数类型为long,单位ms

7)initialDelayString与initialDelay的含义一样,只是将参数类型变为String

8)zone:时区,默认为当前时区,一般没有用到

这里的使用比较简单,固定的间隔时间来启动爬虫。例如可以实现项目启动后,每隔一小时启动一次爬虫。

但是有可能业务要求更高,并不是定时定期处理,而是在特定的时间进行处理,这个时候之前的使用方式就不能满足需求了。例如要在工作日(周一到周五)的晚上八点执行。这时我们就需要Cron表达式了。



Cron表达式

cron的表达式是字符串,实际上是由七子表达式,描述个别细节的时间表。这些子表达式是分开的空白,代表:

1.  Seconds

2.  Minutes

3.  Hours

4.  Day-of-Month

5.  Month

6.  Day-of-Week

7.  Year (可选字段)


例  "0 0 12 ? * WED" 在每星期三下午12:00 执行,

 “*” 代表整个时间段


每一个字段都有一套可以指定有效值,如

Seconds (秒) :可以用数字0-59 表示,

Minutes(分) :可以用数字0-59 表示,

Hours(时) :可以用数字0-23表示,

Day-of-Month(天) :可以用数字1-31 中的任一一个值,但要注意一些特别的月份

Month(月) :可以用0-11 或用字符串:

JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC

Day-of-Week(天) :可以用数字1-7表示(1 = 星期日)或用字符口串:

SUN, MON, TUE, WED, THU, FRI, SAT


“/”:为特别单位,表示为“每”如“0/15”表示每隔15分钟执行一次,“0”表示为从“0”分开始, “3/20”表示表示每隔20分钟执行一次,“3”表示从第3分钟开始执行

“?”:表示每月的某一天,或第周的某一天

“L”:用于每月,或每周,表示为每月的最后一天,或每个月的最后星期几如“6L”表示“每月的最后一个星期五”


定时任务 ||​​​​​​​​​​​​​​ Cron表达式相关推荐

  1. 定时任务Cron表达式学习

    有关定时任务Cron表达式的那些 背景:今天在做quartZ定时任务,发现了要用Cron表达式去指定出发的时间表. 1.CronTrigger CronTrigger,你可以指定触发的时间表如&quo ...

  2. Spring Boot定时任务-cron表达式

    其实cron表达式呢,其实就是一个基于字符串的,基于时间的一个定义格式,那我们就来看一下cron表达式语法的定义,cron表达式它是一个字符串的,并且在字符串当中呢,包含6个域或者7个域,然后每个域表 ...

  3. 定时任务 cron 表达式详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. (Spring定时任务的几种实现:见博客另一页:http://blog.csdn.net/jiang ...

  4. java定时任务cron表达式每周执行一次的坑

    java springboot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑. 我要每周四执行一次,我把我写的表达式在这 ...

  5. linux定时任务 - CRON表达式

    CRON 表达式是一个字符串,以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义. CRON 有如下两种语法格式: 秒 分 小时 日期 月份 星期 年 秒 分 小时 日期 月份 ...

  6. Spring定时任务(Cron表达式)

    定时任务 在线Cron表达式生成器: https://cron.qqe2.com/ 一.SpringBoot自带的定时任务 解决:使用异步任务 + 定时任务来完成定时任务不阻塞的功能 定时任务 1.@ ...

  7. 定时任务cron表达式使用详解

    项目中有时会需要定时去触发一些任务,Java实现定时任务一般有三种方法: JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService: Quartz 定时器:简单 ...

  8. 定时任务 Cron表达式介绍

    一.前言 在公司项目上日志输出看到了定时任务,之前在学习Linux的时候有过了解定时任务,但是不太深入,这里再来学习一波,同时做个笔记. 定时任务:字面意思就是在某个时间所处理的任务.这个可以通过设置 ...

  9. SpringBoot教程四定时任务cron表达式Shedule

    前言需求描述 其实在实际的工程开发过程中,使用定时任务的是难以避免的一种情况,其实SpringBoot 的里面自带的定时任务比较好用,特别简单,但是有个问题就是这个太容易冲突了,管理不方便,如果定时任 ...

最新文章

  1. boot sprint 项目结构_京淘项目03 08.28
  2. ClickHouse之Distributed Query Execution
  3. 在不知道根节点的情况下生成树形结构 (采用JSONObject)
  4. 字典-字典和列表组合的应用场景
  5. SQL Server 2005登录名,用户名,角色,架构之间的关系
  6. 第6章 循环结构程序设计
  7. 通过线程监控socket服务器是否done机
  8. matlab避免使用for_MATLAB新手学习技巧第二波来袭
  9. CSS3实现卡片翻转动画
  10. Node.js:POST请求、文件上传
  11. mac apache 启动php,Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程
  12. 动态SQL和PL/SQL的EXECUTE IMMEDIATE选项
  13. Thinkphp3.2+ 微信小程序图片上传
  14. hping3进行SYN Flood攻击
  15. 【Keras中文文档】Layer Convolutional网址
  16. windows 安装msi 出现报错 2503 无权限 使用cmd模式安装
  17. CAD - 初始CAD 工具栏 命令栏
  18. C++ 优先队列 priority_queue 使用篇
  19. 浏览器是怎样工作的?
  20. 用Python画爱心!!(体验画爱心的感觉)

热门文章

  1. 理解JS中的this的指向
  2. C#基础(七)虚函数
  3. docker实战——构建Jekyll
  4. [Eclipse的Maven项目搭建,仅为测试Maven功能]如何在Eclipse下搭建Maven项目
  5. (转)Linux(Centos)之安装Java JDK及注意事项
  6. 【转载】10个最“优秀”的代码注释
  7. C++ 容器 LIST VECTOR erase
  8. [转]C# WinForm 关于窗体最大化时的是否全屏效果与是否遮盖任务栏
  9. 运算符重载,以及迭代器[foreach]示例
  10. 论初次修改 Android framework 代码