cron

分布式任务调度平台XXL-JOB快速搭建教程

有些话、适合烂在心里 提交于 2020-08-13 01:03:44
1. XXL-JOB简介 XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。它的有两个核心模块,一个模块叫做调度中心,另外一个模块叫做执行器,它把任务调度和任务执行分成两个部分。这样调度模块只需要负责任务的调度属性,触发调度信号。执行模块只需要接收调度信号,去执行具体的业务逻辑,两者可以各自的进行扩容和缩容。图1是一张来自官方的架构图。 2. XXL-JOB搭建 既然是一个分布式调度平台,肯定会有一个调度中心,当然执行器(被调度者)也是必不可少的,可以参考架构图。所以,使用xxl-job搭建一个demo,也必须有两个端,下面本文分别从准备工作、搭建“调度中心”、搭建“执行器”三个部分进行说明。 2.1 准备工作 2.1.1 下载源码 源码地址: https://github.com/xuxueli/xxl-job 我使用的源码是2.2.0版本,这是目前最新的release版本。 源码包含了文档(数据库初始化脚本、官方文档、架构图等)、调度中心源码、核心core、各个版本的执行器源码。如图2所示: 2.1.2 数据库准备 数据库脚本在doc路径下,将其执行之后可以创建一个数据库,如图3所示: 2.2 搭建调度中心 2.2.1 配置调度中心 将数据库连接信息和报警信息配置成自己的,配置文件如下:

springboot注解使用

孤街醉人 提交于 2020-08-12 10:51:03
配置事务 方法加上注解 @Transactional 异步处理 1、方法上加上注解 @Async 2、启动类加上注解 @EnableAsync 缓存Cach 启动类加上注解 @EnableCaching 方法上面加注解 @Cacheable(cacheNames = "menuLeftlist",unless="#result == null") //保存缓存 @CacheEvict(cacheNames = "menuLeftlist",allEntries = true) //清除缓存 @CachePut(cacheNames="accountCache",key="#p0.id") //更新缓存 定时任务 启动类加上注解 @EnableScheduling 方法上加注解 @Scheduled(cron = "0/5 * * * * ?") //每5秒执行一次 来源: oschina 链接: https://my.oschina.net/u/3204029/blog/4319800

shell学习

偶尔善良 提交于 2020-08-12 08:54:41
一、crontab crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。 Linux下的任务调度分为两类,系统任务调度和用户任务调度。 -l 在标准输出上显示当前的crontab。 -r 删除当前的crontab文件。 -e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。当结束编辑离开时,编辑后的文件将自动安装。 1、crontab文件的含义: 用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minute hour day month week command 其中: minute: 表示分钟,可以是从0到59之间的任何整数。 hour:表示小时,可以是从0到23之间的任何整数。 day:表示日期,可以是从1到31之间的任何整数。 month:表示月份,可以是从1到12之间的任何整数。 week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 command:要执行的命令,可以是系统命令

Spring Boot 实现定时任务的 4 种方式

隐身守侯 提交于 2020-08-12 07:56:02
作者:Wan QingHua wanqhblog.top/2018/02/01/SpringBootTaskSchedule/ 定时任务实现的几种方式: Timer :这是java自带的java.util.Timer类,这个类允许你调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定时间运行。一般用的较少。 ScheduledExecutorService :也jdk自带的一个类;是基于线程池设计的定时任务类,每个调度任务都会分配到线程池中的一个线程去执行,也就是说,任务是并发执行,互不影响。 Spring Task :Spring3.0以后自带的task,可以将它看成一个轻量级的Quartz,而且使用起来比Quartz简单许多。 Quartz :这是一个功能比较强大的的调度器,可以让你的程序在指定时间执行,也可以按照某一个频度执行,配置起来稍显复杂。 使用Timer 这个目前在项目中用的较少,直接贴demo代码。具体的介绍可以查看api public class TestTimer { public static void main(String[] args) { TimerTask timerTask = new TimerTask() { @Override public void run() { System

Swoole实现任务定时自动化调度详解,来学习下

余生颓废 提交于 2020-08-12 06:52:33
问题描述 这几天做银行对帐接口时,踩了一个坑,具体需求大致描述一下。 银行每天凌晨后,会开始准备昨天的交易流水数据,需要我们这边请求拿到。 因为他们给的是一个base64加密的zip压缩流,解开以后可以得到txt文件,里面就是我们需要的数据了。 业务程序写好以后,随手丢了一个定时任务就去睡觉了。 哪知道第二天上班的时候,检查。发现并没有拿到数据,查询一下日志的时候发现,凌晨服务端请求的时候,银行接口返回了:系统错误信息。 咨询银行那边后,银行那边相关人员建议我们多请求几次,但是在多次请求中,我发现银行那边是有频率限制的,最后得知,此接口只能半个小时才能请求一次。这就比较尴尬了,因为我不知道银行那边什么时候能返回数据给我。 于是这个问题怎么解决呢?理想的情况是,服务端请求数据,银行那边没有返回。然后程序等半个小时后,再请求一次,这样一直到银行那边返回正确的数据中止。 问题分析 这个功能换作别的语言也许不难,但是通过php实现的话,那就比较麻烦了。通常的话,我们可以搭配linux下的cron来实现,比如我们可以在凌晨到6:00之间做一个定时任务,每半个小时扫描一次php脚本,如果发现银行那边的状态依旧为失败的话,我们就执行一次php脚本去请求数据。直到请求到正确的数据,然后把状态更新为成功。 这不失为一种方法,但太傻了。比如说银行那边比较正常,凌晨,也就是第一次请求的时候

【转】Linux crontab下关于使用date命令的坑

孤街醉人 提交于 2020-08-12 01:39:03
在测试环境中,一开发同事反馈自己设置的crontab不生效,定时任务如下: */6 * * * * date >> /usr/local/log/log_$(date +%Y%m%d%H%M).txt   咋一看,好像没什么问题。   先按照思路来测试一下:   1. 直接在命令行中执行没有问题 # date >> /usr/local/log/log_$(date +%Y%m%d%H%M).txt   2. 查看/va/log/cron日志,也没发现问题   3. cron服务是正常的   4. 环境变量问题,date要使用绝对路径? 测试了一下,把定时任务改成  */6 * * * * date >> /home/a.txt   定时任务执行正常。   5. 那问题应该就是$(date +%Y%m%d%H%M) 的问题了,在终端上执行的    `date +"%Y%m%d_%H:%M"` 和 $(date +"%Y%m%d_%H:%M") 在crontab下不起作用,需采用如下形式: ` date + " \%Y\%m\%d_\%H:\%M " ` 和 $( date + " \%Y\%m\%d_\%H:\%M " ) from: https://www.cnblogs.com/doctormo/p/12003771.html 来源: oschina 链接: https:/

Rsyslog 收集Docker日志-配置玩转

浪子不回头ぞ 提交于 2020-08-12 00:41:32
rsyslog安装没什么好说的,略过 配置文件修改前,需注意3点: 1. 先关闭selinux、firewalld等防火墙,后面再放行 2. 主机名修改,推荐 hostnamectl set-hostname server (主rsyslog服务器) hostnamectl set-hostname client (客户端rsyslog服务器) 3. 域名解析修改/etc/hosts,主服务、客户端都添加 192.168.0.229 server 192.168.0.230 client 下面直接开始配置rsyslog的配置文件 rsyslog服务端配置/etc/rsyslog.conf # rsyslog configuration file # For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html # or latest version online at http://www.rsyslog.com/doc/rsyslog_conf.html # If you experience problems, see http://www.rsyslog.com/doc/troubleshoot.html #### MODULES #### module(load="imuxsock" #

Python编程快速上手 让繁琐工作自动化PDF高清完整版免费下载|百度云盘

筅森魡賤 提交于 2020-08-11 20:05:39
百度云盘:Python编程快速上手 让繁琐工作自动化PDF高清完整版免费下载 提取码:6msq 内容简介 如今,人们面临的大多数任务都可以通过编写计算机软件来完成。Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。通过Python编程,我们能够解决现实生活中的很多任务。 本书是一本面向实践的Python编程实用指南。本书的目的,不仅是介绍Python语言的基础知识,而且还通过项目实践教会读者如何应用这些知识和技能。本书的首部分介绍了基本Python编程概念,第二部分介绍了一些不同的任务,通过编写Python程序,可以让计算机自动完成它们。第二部分的每一章都有一些项目程序,供读者学习。每章的末尾还提供了一些习题和深入的实践项目,帮助读者巩固所学的知识。附录部分提供了所有习题的解答。 本书适合任何想要通过Python学习编程的读者,尤其适合缺乏编程基础的初学者。通过阅读本书,读者将能利用强大的编程语言和工具,并且会体会到Python编程的快乐。 作者简介 Al Sweigart 是一名软件开发者,还教小孩和成人编程。他为初学者写了几本Python 书籍,包括《Python 密码学编程》、《Python 游戏编程快速上手》和《Python 和Pygame 游戏开发指南》。 目录 第一部分Python编程基础 第1章 Python基础 3 1.1 在交互式环境中输入表达式

Linux 定时任务crontab_014

青春壹個敷衍的年華 提交于 2020-08-11 05:34:20
1、 crontab命令概念 crontab命令用于设置周期性被执行的指令 。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 cron 系统调度进程 。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。 crontab命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。系统管理员可以通过/etc/cron.deny 和 /etc/cron.allow 这两个文件来禁止或允许 用户拥有自己的crontab文件。 2 、 检查是否安装了crontab,如果提示未安装请自行安装,crontab安装包在系统光盘里面的pacekage文件夹crontabs安装包。 3、 crontab服务启动与关闭。 4、 全局配置文件: crontab在/etc目录下面存在cron.hourly,cron.daily,cron.weekly,cron.monthly,cron.d五个目录和crontab,cron.deny二个文件。 cron.daily 是每天执行一次的job cron.weekly 是每个星期执行一次的job cron.monthly 是每月执行一次的job cron.hourly 是每个小时执行一次的job

How do I schedule a python script using cron on OS X Catalina

人盡茶涼 提交于 2020-08-11 03:14:37
问题 So i'm trying to setup a cron job in Mac OS X Catalina 10.15.3. For some reason I can get my python script running. I setup a test job under it and that one works perfectly. * * * * * python3 /Users/eric/Dropbox/python/Print/New\ Orders/funcs.py * * * * * echo 'hello' >> //Users/eric/Desktop/test/test.txt `` the echo is running every minute but for some reason I cant the the python file to run. 回答1: The safest option is the put the full path to the script. For your specific case you can find