任务调度

Linux任务调度

笑着哭i 提交于 2020-02-22 20:59:18
一、crond任务调度 1.crontab进行定时任务的设置 1.1概述 任务调度:指系统在摸个时间执行的特定的命令或程序 任务调度分类:1.系统工作:有些重要的工作必须周而复始地执行。如病毒扫描等。 2.个别用户工作;个别用户希望执行某些程序,比如对mysql数据的备份。 1.2基本语法 crontab [选项] 1.3常见选项 选项 含义 -e 编辑crontabl定时任务 -l 查询crontabl定时任务 -r 删除当前用户所有的crontab任务 注:如果只是简单的任务,可以不写脚本,直接在crontab中加入任务即可;对于比较复杂的任务,需要写脚本(Shell编程) 1.4占位符解释 占位符 含义 范围 第一个”*“ 一小时当中的第几分钟 0-59 第二个”*“ 一天当中的第几个小时 0-23 第三个”*“ 一个月当中的第几天 1-31 第四个”*“ 一年当中的第几个月 1-12 第五个*”“ 一周当中的星期几 0-7(0,7均代表星期日) 1.5特殊符号解释 特殊符号 含义 * 代表任何时间。比如第一个”*“就代表一小时中每分钟都执行一次的意思 , 代表不连续时间,比如”0,8,12,16 * * * 命令“,就代表在每天的8点0分,12点0分,16点0分都执行一次命令 - 代表连续的时间范围,比如”0 5 * * 1-6 命令“

如何构建延迟任务调度系统

与世无争的帅哥 提交于 2020-02-15 13:43:15
一、需求目标 1.需求描述 之前笔者接触过一些营销业务场景,比如说: 用户注册未登录过APP第二天早上10点发一条营销短信促活 红包过期前两天短信通知,下午16:00发送 等等定时任务处理业务。 采用的技术方案是定时任务扫数据汇总表,分页读取一定数量然后处理 然而随着业务的发展,业务多元化,遇到了以下场景: 拼团砍价活动过期前半小时提醒 订单提交半小时内没有完成支付,订单自动取消,库存退还 用户几天内没有操作过系统,发放激活短信 以上场景处理时间不是固定的某个点,而是业务发生的时间推迟一段时间,针对以上的业务场景,我们考虑可以根据不同业务建表,然后每隔一段时间去定时扫表,各自处理业务。 但是随着业务增加,表泛滥,而且此类业务其实有很多相同的地方,那么我们可以考虑把相同逻辑抽离出来,利用延迟队列来处理任务 2.延时队列设计目标 可靠性:任务进入延时队列之后,必须被执行一次 高可用性:支持多实例部署 实时性:允许一定时间误差,当然误差越小越好 可管理:支持消息删除 高性能:数据量大的情况下也能保证高性能 二、技术调研 延时队列实现的几种方式 java.util.Timer + java.util.TimerTask java.util.concurrent.ScheduledExecutorService Quartz java.util.concurrent.DelayQueue

Linux的任务计划--cron入门

≯℡__Kan透↙ 提交于 2020-02-14 06:18:09
Linux操作系统定时任务系统 Cron 入门   cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:   /sbin/service crond start //启动服务   /sbin/service crond stop //关闭服务   /sbin/service crond restart //重启服务   /sbin/service crond reload //重新载入配置   你也可以将这个服务在系统启动的时候自动启动:   在/etc/rc.d/rc.local这个脚本的末尾加上:   /sbin/service crond start   现在Cron这个服务已经在进程里面了,我们就可以用这个服务了,Cron服务提供以下几种接口供大家使用:   1.直接用crontab命令编辑   cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:   crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数   crontab -l //列出某个用户cron服务的详细内容   crontab -r //删除某个用户的cron服务   crontab -e /

分布式任务调度XXL-JOB初体验

和自甴很熟 提交于 2020-02-10 20:23:50
简介 XXL-JOB 是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 官方文档很完善,不多赘述。本文主要是搭建 XXL-JOB 和简单使用的记录。 搭建xxl-job-admin管理端 运行环境 Ubuntu 16.04 64位 Mysql 5.7 安装Mysql $ sudo apt-get update $ sudo apt-get install mysql-server ## 设置mysql,主要是安全方面的,密码策略等 $ mysql_secure_installation ## 配置远程访问 $ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf bind-address = 0.0.0.0 $ sudo service mysql restart $ sudo service mysql status ● mysql.service - MySQL Community Server Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2019-06-05 13

分布式任务调度平台XXL-JOB

老子叫甜甜 提交于 2020-02-08 17:51:07
XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。 作者开源社区:https://www.xuxueli.com/xxl-job 来源: CSDN 作者: weixin_43382896 链接: https://blog.csdn.net/weixin_43382896/article/details/104220891

集成分布式任务调度平台xxl_job详解

China☆狼群 提交于 2020-02-05 08:43:48
@ 集成分布式任务调度平台xxl_job详解 集成分布式任务调度平台xxl_job详解 (一)源码下载地址: Github https://github.com/xuxueli/xxl-job 码云 https://gitee.com/xuxueli0323/xxl-job (二)初始化数据库: 找到源码目录的 /doc/db/tables_xxl_job.sql 执行脚本,在MySQL数据库中生成如下7 张表,如图 : (三)配置调度中心 在项目配置文件中添加如下配置,如图 (四)编写任务demo 具体开发步骤,如图 (五)访问配置地址 http://localhost:8080/xxl-job-admin (六)ok,想加什么任务写好了在页面加就ok了,小弟的点点见解,望各位大佬多多指教 来源: CSDN 作者: SZ_酸萝卜 链接: https://blog.csdn.net/B_Courier/article/details/103989745

Java 实现的几种任务调度方式

假装没事ソ 提交于 2020-01-30 08:27:37
1. Java实现定时任务方式 public class Demo01 { staticlongcount = 0; public static void main(String[] args) { Runnable runnable = new Runnable() { @Override publicvoid run() { while (true) { try { Thread.sleep(1000); count++; System.out.println(count); } catch (Exception e) { // TODO: handle exception } } } }; Thread thread = new Thread(runnable); thread.start(); } } 2. TimerTask实现定时任务 /** * 使用TimerTask类实现定时任务 */ public class Demo02 { static long count = 0; public static void main(String[] args) { TimerTask timerTask = new TimerTask() { @Override publicvoid run() { count++; System.out.println(count); }

05-007 【Linux】crond任务调度

谁说我不能喝 提交于 2020-01-25 02:49:40
1. 概述 任务调度:是指系统在某个时间执行特定的命令或程序 任务调度分类:1.系统工作:有些重要工作需要周而复始的进行,比如病毒扫描;2.个别用户工作:个别用户可能希望执行某些程序,比如mysql备份。 2. 语法 crontab 【选项】 选项 含义 -e 编辑crontab定时任务 -l 查询crontab任务 -r 删除当前用户所有的crontab 3.快速入门 如果遇到crontab 报错:command not found 解决:执行 yum -y install vixie-cron crontabs 安装即可 crontab -e 输入下面命令后保存并退出 */1 * * * * ls –l /etc/ > /tmp/to.txt (意思说每小时的每分钟执行 ls –l /etc/ > /tmp/to.txt 命令) 4.调度文件参数说明 占位符说明 项目 含义 范围 第一个* 一个小时当中的第几分钟 0-59 第二个* 一天当中的第几个小时 0-23 第三个* 一个月中的第几天 1-31 第四个* 一年当中第几月 1-12 第五个* 一周当中星期几 0-7(0/7都是周日) 特殊符号说明 特殊符号 含义 * 代表任何时间 , 代表不连续时间 - 代表连续的时间范围 */n 代表每隔多久执行一次 特定时间执行任务案例 时间 含义 45 22 * * * 命令 每天

Quartz简介

。_饼干妹妹 提交于 2020-01-23 22:06:09
任务调度概述   以论坛为例,每天凌晨统计用户的积分排名,每隔30分钟对锁定到期的用户进行解锁。对别的应用来说,每月一日凌晨统计数据生成月报表,每隔半小时查询用户是否有快到期的待处理业务。   以上所举调度场景的核心都是以时间为关注点的调度,即在特定的时间点执行指定的操作。任务调度本身设计多线程并发、运行时间规则指定与解析、运行现场保持与恢复、线程池维护等诸多方面的工作。如果直接使用自定义线程的方法处理,开发会很具有挑战性。Quartz提供的功能让开发者可以应对绝大多数任务调度的功能需求。 Quartz基础结构   Quartz对任务调度的领域问题进行了高度抽象,提出了调度器、任务和触发器这3个核心的概念。 Job:是一个接口,只有一个方法void execute(JobExecutionContext context),开发者通过实现该接口来定义需要执行的任务,JobExecutionContext 类提供了调度上下文的各种信息,Job运行时的信息保存在JobDataMap实例中。 JobDetail:Quartz在每次执行Job时都重新创建一个Job实例,所以它不是直接接受一个Job实例,而是接受一个Job实现类,以便运行时通过newInstance()的反射调用机制实例化Job。JobDetail承担的角色就是描述Job的实现类及其他相关的静态信息,如Job名称、描述

什么是任务调度

点点圈 提交于 2020-01-21 17:55:44
在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作。常见的任务调度框架有Quartz和SpringTask等。 来源: https://www.cnblogs.com/coder-wf/p/12222263.html