定时任务 || Cron表达式
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表达式相关推荐
- 定时任务Cron表达式学习
有关定时任务Cron表达式的那些 背景:今天在做quartZ定时任务,发现了要用Cron表达式去指定出发的时间表. 1.CronTrigger CronTrigger,你可以指定触发的时间表如&quo ...
- Spring Boot定时任务-cron表达式
其实cron表达式呢,其实就是一个基于字符串的,基于时间的一个定义格式,那我们就来看一下cron表达式语法的定义,cron表达式它是一个字符串的,并且在字符串当中呢,包含6个域或者7个域,然后每个域表 ...
- 定时任务 cron 表达式详解
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. (Spring定时任务的几种实现:见博客另一页:http://blog.csdn.net/jiang ...
- java定时任务cron表达式每周执行一次的坑
java springboot 利用schedule执行定时任务是很常用的功能,有一个很常用的网站就是在线Cron表达式生成器,但是在这个网站最近遇到一个坑. 我要每周四执行一次,我把我写的表达式在这 ...
- linux定时任务 - CRON表达式
CRON 表达式是一个字符串,以 5 或 6 个空格隔开,分为 6 或 7 个域,每一个域代表一个含义. CRON 有如下两种语法格式: 秒 分 小时 日期 月份 星期 年 秒 分 小时 日期 月份 ...
- Spring定时任务(Cron表达式)
定时任务 在线Cron表达式生成器: https://cron.qqe2.com/ 一.SpringBoot自带的定时任务 解决:使用异步任务 + 定时任务来完成定时任务不阻塞的功能 定时任务 1.@ ...
- 定时任务cron表达式使用详解
项目中有时会需要定时去触发一些任务,Java实现定时任务一般有三种方法: JDK自带的Timer以及JDK1.5+ 新增的ScheduledExecutorService: Quartz 定时器:简单 ...
- 定时任务 Cron表达式介绍
一.前言 在公司项目上日志输出看到了定时任务,之前在学习Linux的时候有过了解定时任务,但是不太深入,这里再来学习一波,同时做个笔记. 定时任务:字面意思就是在某个时间所处理的任务.这个可以通过设置 ...
- SpringBoot教程四定时任务cron表达式Shedule
前言需求描述 其实在实际的工程开发过程中,使用定时任务的是难以避免的一种情况,其实SpringBoot 的里面自带的定时任务比较好用,特别简单,但是有个问题就是这个太容易冲突了,管理不方便,如果定时任 ...
最新文章
- boot sprint 项目结构_京淘项目03 08.28
- ClickHouse之Distributed Query Execution
- 在不知道根节点的情况下生成树形结构 (采用JSONObject)
- 字典-字典和列表组合的应用场景
- SQL Server 2005登录名,用户名,角色,架构之间的关系
- 第6章 循环结构程序设计
- 通过线程监控socket服务器是否done机
- matlab避免使用for_MATLAB新手学习技巧第二波来袭
- CSS3实现卡片翻转动画
- Node.js:POST请求、文件上传
- mac apache 启动php,Mac OS上搭建Apache+PHP+MySQL开发环境的详细教程
- 动态SQL和PL/SQL的EXECUTE IMMEDIATE选项
- Thinkphp3.2+ 微信小程序图片上传
- hping3进行SYN Flood攻击
- 【Keras中文文档】Layer Convolutional网址
- windows 安装msi 出现报错 2503 无权限 使用cmd模式安装
- CAD - 初始CAD 工具栏 命令栏
- C++ 优先队列 priority_queue 使用篇
- 浏览器是怎样工作的?
- 用Python画爱心!!(体验画爱心的感觉)
热门文章
- 理解JS中的this的指向
- C#基础(七)虚函数
- docker实战——构建Jekyll
- [Eclipse的Maven项目搭建,仅为测试Maven功能]如何在Eclipse下搭建Maven项目
- (转)Linux(Centos)之安装Java JDK及注意事项
- 【转载】10个最“优秀”的代码注释
- C++ 容器 LIST VECTOR erase
- [转]C# WinForm 关于窗体最大化时的是否全屏效果与是否遮盖任务栏
- 运算符重载,以及迭代器[foreach]示例
- 论初次修改 Android framework 代码