cron计划任务以及Quartz的使用

Quartz任务调度框架学习三(Cron Expressions(计划任务表达式)详解) Cron的表达式是一个由七个表达式组成的字符串,每一个子表达式都描述了一个单独的日程细节,这些表达式用空格分隔,分别表示:        1. Seconds  秒        2. Minutes  分        3. Hours  小时        4. Day-of-Month  月中的天        5. Month  月        6 阅读详情

cron工具的使用


cron是什么?

  • cron是Linux下的定时执行工具,可以根据设置的时间自动执行某项任务,例如可以完成日志的分析、jar包定时执行等等一些需要定时执行的任务。
  • cron需要启动服务来进行任务的定时执行。具体代码如下
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
  • CronTab所代表的含义
    m:代表分钟,取值范围(0-59)
    h:代表小时,取值范围(0-23)
    dom:代表日期,取值范围(1-31)
    mon:代表月份,取值范围(1-12)
    dow:代表星期几,取值范围(0-7),其中0和7都代表星期天

  • CronTab格式说明图
    CronTab格式说明图

  • 一般来讲,可以通过两种方式来进行使用
    1. 修改配置文件
    2. 直接使用命令执行
      下面分别简单介绍一下两者的用法

修改配置文件来执行计划任务

sudo vim /etc/crontab

crontab文件
可以看到类似一张表,表头注释写着m h dom mon dow user command的字段,分别代表的意思是
分钟、小时、 日期、月份和星期以及后面所需要执行的命令。
在文件中已经存在这么几条命令,从上到下分别代表的意思是:
1.17 * * * * root cd / && run-parts --report /etc/cron.hourly
每天每个小时的17分执行一次/ect/cron.hourly任务
2.25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
每天的6:25执行cron.daily文件的内容
3.47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
每个星期天6:47执行cron.weekly文件的内容
4.52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
每个月的每月1号6:52执行cron.monthly的内容


直接在命令行内操作

cron服务提供crontab来设定cron服务,以下是这个命令的一些参数与说明:
crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数
crontab -l //列出某个用户cron服务的详细内容
crontab -r //删除某个用户的cron服务
crontab -e //编辑某个用户的cron服务
比如说root查看自己的cron设置:crontab -u root -l

下面举例说明具体应该怎么使用

vim cron_test.txt


0 6 * * * echo "Good morning." >> /tmp/test.txt         //每天早上6点打印Good moring
0 */2 * * * echo "Have a break now." >> /tmp/test.txt   //每两个小时
0 4 1 1 * command line                                  //1月1日早上4点

Quartz的用法

掌握了CronTab的基本用法后,很容易使用Quartz这个Java定时任务工具包。
用法:比CronTab多了一位,秒
例如:

"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秒触发任务

下面使用注解方式进行执行(针对web项目的定时任务):

    @Scheduled(cron = "0/1 * * * * ? ")//每隔1秒执行一次
    public void run(){
        System.out.println("Hello MyJob"+ new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
    }

    @Scheduled(cron = "0/60 * * * * ? ")  //每分钟执行一次
    public void testPython(){
        System.out.println("Hello a minutes");
    }

如果遇到较为复杂的表达式,还可以去网上在线生成CronTab表达式的网站进行编辑
在线Cron表达式生成器

手把手安装GNN必备库 —— pytorch_geometric PyG全称是Pytorch Geometric,它是一个基于Pytorch构建的库,可以帮助用户快速构建和训练自己的图神经网络模型。PyG中实现了很多先进(state of the art)的GNN模块,例如GCN、GraphSage、GAT、SGC、GIN等等。此外,PyG中还包含了大量的benchmark图数据集、丰富的图数据操作方法、支持多GPU。 阅读详情

相关推荐

PMSM无感foc控制(滑模-反正切-PLL)【仿真模型搭建教程】(附模型)

本文主要目的是教大家如何把文献中的公式转换成仿真模型。 首先介绍滑模控制的原理及如何搭建simulink模型。 1.1基于反电势估计位置原理 永磁同步电机在静止坐标系αβ下的电压方程: 扩展反电动势包含转子位置信息,并且αβ轴下扩展反电动势的反正切函数正好就等于位置角theta。 1.2 滑模控制原理(比较重要的点是以电机电流模型推导展开) 通过滑模观测得到鲁棒性比较高的αβ轴下扩展反电动势,并求其反正切函数,得到位置信息。 /*********************...

weixin_44769876的博客 1万+

cron表达式简单释义、使用

1. 表达式各时间元素详解 秒 分钟 小时 天 月 星期 年份 0~59 0~59 0~23 0~29.30.31(考虑月份) 0~11 1~7(1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 1970~2099 其中每个元素可以是一个值(如6),一个连续区间(9-12),一个间隔时间(8-18/4)(/表示每隔4小时),一个列表(1,3,5),通配...

freedom_zzz的博客 1713

使用 VPN 访问太理内部网相关问题总结【太原理工大学】

电脑连接 VPN,访问校园内部网相关问题总结,太原理工大学。

m0_52861684的博客 9873

定时任务@Scheduled详解_Cron表达式详解

SpringBoot中自带的定时任务注解@Scheduled。@Scheduled可以通过注解配置快速实现方法的定时调度。常用参数:cron。

qq_36402747的博客 2221

《生成式AI引发的“认知污染”:社交媒体虚假信息的治理困局》

认知污染与生成式AI“认知污染”指信息环境被大量虚假、误导性内容所充斥,干扰公众对事实的认知判断。在社交媒体时代,虚假信息的生产和传播门槛大幅降低,呈现出工业化、规模化的趋势。近年兴起的生成式人工智能(Generative AI)技术,如大型语言模型(LLM)和深度伪造(deepfake),更是加剧了这一问题。AI可以自动生成看似真实的文本、图像、音视频,将虚假信息批量生产并快速散播到社交平台上。

那谁的博客 5912

PyCharm启动报错急救指南:3步定位.vmoptions文件位置(Win/Mac路径详解)

本文针对PyCharm启动失败问题,提供了一份详细的急救指南。核心在于精准定位并修复关键的.vmoptions配置文件。文章通过三步法详解了在Windows和macOS系统上查找该文件的具体路径,并分析了因新旧版本冲突、破解补丁残留或参数设置错误导致启动失败的常见场景及解决办法,帮助开发者快速恢复IDE的正常工作。

weixin_28835789的博客 702

Spring的@Scheduled 动态更新cron表达式

这里核心的主要是使用到了ScheduledTaskRegistrar这个类有一个方法addTriggerTask(Runnable,Trigger) 两个参数,一个Runnable,一个是Trigger,在Runnable中执行业务逻辑代码,在Trigger修改定时任务的执行周期。因为是要任务执行一次的时候才会去修改时间的cron表达式,所以改了cron后,要在下下次任务执行时才会生效。完整代码可以这样实现。

chuxuan0215的博客 2492

Silvaco Atlas(五)——物理模型总结

物理模型总结

qsz1425AWD2121的博客 2150

springboot定时任务

启动类添加开始定时任务注解 @EnableScheduling

weixin_42382498的博客 1138

微型纵向加密在新能源场站中的实战部署与运维避坑指南

本文详细解析了微型纵向加密在新能源场站中的实战部署与运维技巧。通过国密算法SM4实现数据加密,确保新能源场站通信安全,同时提供非侵入式部署方案和运维避坑指南,帮助提升网络稳定性和运维效率。

weixin_30505225的博客 595

SAPIEN ManiSkill3 入门教程(一)

请注意,table.set_pose(pose) 设置的是演员在世界帧中的坐标系姿势。移除的实体可以再次添加到场景中,但已在场景中的实体则不能再次添加。显示器可以是物理的(如显示器),也可以是虚拟的(如 VNC)。我们可以通过 get_pose()、get_linear_velocity() 和 get_angular_velocity()获取演员的运动量(姿势、线速度、角速度)。现在,让我们创建一个斜坡。例如,您可能需要一个简单的碰撞形状来进行快速模拟,但却需要一个复杂的视觉形状来进行逼真的渲染。

机器人控制与仿真应用 3070

Spring @Scheduled 任务 参数动态配置

@Scheduled(cron = "0 */60 * * * ?") public void execute(){}     final String s = "0/1 * * * * ?"; @Scheduled(cron = s) public void execute(){}    

xiaomin1991222的专栏 1095

使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间

在泊松回归模型中,我们通常关注的是自变量对事件发生率的影响,而事件密度比(Incidence Rate Ratio,IRR)可以帮助我们理解不同自变量对事件发生率的相对影响。在本文中,我们将使用R语言来获取泊松回归模型所有系数的事件密度比的95%置信区间。通过以上步骤,我们可以使用R语言获取泊松回归模型所有系数的事件密度比的95%置信区间。为了获取事件密度比的置信区间,我们将使用。使用R语言获取泊松回归模型的事件密度比(Incidence Rate Ratio,IRR)的95%置信区间。

BugCrusher的博客 1264

计划任务 算法 表达 cron (Quartz cron 语法)

http://chinaxxren.iteye.com/blog/839630 Quartz cron 表达式的格式十分类似于 UNIX cron 格式,但还是有少许明显的区别。区别之一就是 Quartz 的格式向下支持到秒级别的计划,而 UNIX cron 计划仅支持至分钟级。许多我们的触发计划要基于秒级递增的(例如,每45秒),因此这是一个非常好的差异。 在 UNIX cron 里,要

Jack_06_04的博客 559

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

cron 配置计划任务的书写格式(quartz 时间配置)

一个cron表达式有至少6个(也可能7个)有空格分隔的时间元素。 按顺序依次为 1.秒(0~59) 2.分钟(0~59) 3.小时(0~23) 4.天(月)(0~31,但是你需要考虑你月的天数) 5.月(0~11) 6.天(星期)(1~7 1=SUN 或 SUN,MON,TUE,WED,THU,FRI,SAT) 7.年份(1970-2099) 其中每个元素可以是一个值(如...

weixin_34008784的博客 385

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

java计划任务调度框架quartz结合spring实现调度的配置实例代码分享

java计划任务调度框架quartz结合spring实现调度的配置实例代码分享,代码下载地址:http://www.zuidaima.com/share/1755429240540160.htm

云淡风轻、仅此一抹 1万+

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

quartz 注解 mysql_spring-boot-starter-quartz

痛点在Spring中使用计划任务,有两种方案可供选择:一、用Spring原生的计划任务,使用起来非常简单,只需要用到@Scheduled注解即可;二、集成Quartz来做计划任务,需要配置大量的Quartz原生类。对于第一种来说,局限性在于不支持计划任务的集群,如果有多个计划任务的项目一起启动的话,每个JVM都会执行一遍预定时间的计划任务。对于Quartz来说,可以通过集群来保证在预定的时间点只会...

weixin_31236309的博客 586

Quartz Job Scheduling Framework

Quartz 是什么,大概不需多加说明,简单讲就是一个纯 Java 实现的作业调度工具,相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细。也许大多数人听说 Quartz 是在学习或使用 Spring 的时候,也就是 Spring 整合了 Quartz。而我也不例外,同样是在春天里得悉了这块石英。...

行行 261

Quartz配置1.6&2.2

Quartz配置1.6&2.2

坚强的尐2b゛的专栏 1489

Quartz.Net和Cron 初体验

【本人原创】,欢迎交流和分享技术,转载请附上如下内容: 作者:itshare 【转自】http://www.cnblogs.com/itshare/ 我这两天研究了一下Quartz.Net 和 cron 语法表达式,自己封装了一下实现计划任务管理器。它与网上其他开源后项目的比较,优势如下:1.调用代码只要四行(图2),2. 配置文件简单化(图3),3.不需要对原有JOB程序做...

weixin_30640769的博客 195

Quartz2之入门示例

环境:XP+Myeclipse6.5+JDK1.6 quartz官网:http://www.quartz-scheduler.org/ 参考资料 1 Quartz任务调度快速入门 http://www.blogjava.net/baoyaer/articles/155645.html 2 Quartz http://ttaale.iteye.com/blog/630202 http:...

White_Lee的专栏 178

quartz入门

1、Quartz介绍: 任务调度框架“Quartz”是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统, “任务进度管理器”就是一个在预先确定(被纳入日程)的时间到达时,负责执行(或者通知)其他软件组件的系统。 简单来说就是实现“计划(或定时)任务”的系统,例如:订单下单后未付款,15分钟后自动撤消订单,并自动解锁锁...

很菜,但是没有放弃 387

三步给老Intel Mac装上新版macOS:OpenCore Legacy Patcher 实操指南

OpenCore Legacy Patcher(下文简称 OCLP)是一个免费开源补丁工具,它让苹果已停止支持的老 Intel Mac 也能安装从 Big Sur 11.x 到 Sequoia 15.x 的新版 macOS,装完可用图形界面完成全部流程。你是不是在"系统更新"里看到"此 Mac 已不再受支持",就以为这台机器只能停在旧系统里了?其实不是。 ## 结论开场 先说结果:按本指南走完

gitblog_00487的博客 339

关于Spring Quartz中的*号(wildcard, asterix )和?号(question mark)的不同

查了一些文章,有的说「*」代表所有值,「?」代表不确定的值,你不想设置的值。 但不想设置和代表所有什么不同呢,在我看来一样。 Quartz官方文档是这么说的: http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/tutorial-lesson-06.html The ‘?’ character is allo

冲吧,不要停! 435

linux cron crond 区别,为什么Linux的Crond最小只支持分钟级别的定时任务?Crontab工作机制探究...

在开发过程中,经常会有用到计划任务的时候。一般来讲,常见的大部分需求也很好实现,Linux的定时任务简单地配置到crontab里面就可以了,设置方法也很简单,如下所示,6个参数依次表示为“分、时、日、月、周和具体任务”(示例为每天凌晨3点执行freshclam工作)。[root@student ~]# crontab -l0 3 * * * freshclam然而,从5个时间参数来看最小是精确到某...

weixin_35662085的博客 560

初识Quartz-个人学习总结

初识Quartz-个人学习总结

m0_53692627的博客 617
上一篇: Hive1.2.2安装步骤(Ubuntu17.04环境下搭建)
下一篇: 安卓端同时上传文字和图片到服务器,服务器接收并处理
一叶知秋Autumn
博客等级 码龄10年 170粉丝 51原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值