[423]定时任务(saturn)

2023-10-28

项目地址:https://github.com/vipshop/Saturn
参考文档:https://vipshop.github.io/Saturn/#/zh-cn/3.0/
https://vipshop.github.io/Saturn/#/zh-cn/2.x/
版本下载:https://github.com/vipshop/Saturn/releases

本文档针对版本3.x版本。

Saturn

唯品会开源分布式作业调度平台

简介

Saturn (任务调度系统)是唯品会开源的分布式作业调度平台,取代传统的Linux Cron/Spring Batch Job的方式,做到统一配置,统一监控,任务高可用以及分片并发处理。Saturn基于当当Elastic Job代码基础上自主研发的任务调度系统。

重要特性

  • 支持多种语言作业,语言无关(Java/Go/C++/PHP/Python/Ruby/shell)
  • 支持秒级调度
  • 支持作业分片并行执行
  • 支持依赖作业串行执行
  • 支持作业高可用和智能负载均衡
  • 支持异常检测和自动失败转移
  • 支持异地容灾
  • 支持多个集群部署
  • 支持跨机房区域部署
  • 支持弹性动态扩容
  • 支持优先级和权重设置
  • 支持docker容器,容器化友好
  • 支持cron时间表达式
  • 支持多个时间段暂停执行控制
  • 支持超时告警和超时强杀控制
  • 支持灰度发布
  • 支持异常、超时和无法高可用作业监控告警和简易的故障排除
  • 支持失败率最高、最活跃和负荷最重的各域各节点TOP10的作业统计
  • 经受住唯品会生产800多个节点,每日10亿级别的调度考验

快速开始

Saturn包括两大部分,Saturn ConsoleSaturn Executor

Saturn Console是一个GUI,用于作业/Executor管理,统计报表展现,系统配置等功能。它同时也是整个调度系统的大脑:将作业任务分配到各Executor。

Saturn Executor是执行任务的Worker:按照作业配置的要求去执行部署于Executor所在容器或物理机当中的作业脚本和代码。

为了能让用户对Saturn有一个感性认识,我们提供了两种快速启动Console和Executor的方法。

至于生产环境的部署,请参见后面的部署指南。

1 一键启动

首先,请确保本机安装了以下软件:

  • JDK 7 or JDK 8
  • Maven 3.0.4+
  • node.js 8.7.0+
  • npm 5.4.2+
  • docker (版本不限)

然后,git clone本仓库到本地,checkout对应版本分支,进入quickstart目录。如果是Windows系统,请运行quickstart.bat,如果是Linux/Unix/MacOS系统,请运行quickstart.sh

$ git clone https://github.com/vipshop/Saturn
$ git checkout develop
$ cd quickstart
$ chmod +x quickstart.sh
$ ./quickstart.sh

quickstart脚本将做如下事情:

  • 启动内嵌的ZooKeeper
  • 启动内嵌的Saturn-Console
  • 启动内嵌的Saturn-Executor(包含了一个Java作业的实现)
  • 在Saturn-Console添加该Java作业

启动完成后,您可以访问Saturn-Console:http://localhost:9088

如果你见到如下界面,则恭喜你,你的console已经启动。

home_page

在首页的search bar点击会出现一个叫做’mydomain’的namespace。点击进去会见到一个名为’demoJavaJob’的作业,该作业有5个分片,每隔5秒调度一次。

demo_job

一个叫做’executor-1’的executor执行器调度该作业。

2 Docker启动

$ git clone https://github.com/vipshop/Saturn
$ git checkout develop
$ cd saturn-docker
$ chmod +x quickstart-docker.sh
$ ./quickstart-docker.sh

quickstart-docker.sh脚本将做如下事情:

  • 构建基于OpenJDK7的基础镜像
  • 构建基于OpenJDK7的Saturn-Console镜像
  • 构建基于OpenJDK7的Saturn-Executor镜像
  • 启动一个ZooKeeper集群的容器
  • 启动一个Saturn-Console容器
  • 启动两个Saturn-Executor容器
  • 添加一个Java作业和一个Shell作业

启动成功后,您可以访问Saturn-Console:http://localhost:9088

参考:https://www.sohu.com/a/240164605_354963
https://blog.csdn.net/yuguotianq/article/details/77043874

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[423]定时任务(saturn) 的相关文章

  • win10设置关机计划

    方法一 推荐 1 win r键打开运行窗口 cmd进入命令行 2 输入关机命令 修改时间完毕后 粘贴进入命令行 schtasks create tn shut tr shutdown s f sc once st 20 00 sd 2021
  • springboot 定时任务(线程配置,并行【同步】、异步等)

    1 定时任务实现方式 SpringBoot自带的Scheduled 可以将它看成一个轻量级的Quartz 而且使用起来比Quartz简单许多 本文主要介绍 执行方式 单线程 串行 多线程 并行 2 创建定时任务 Component Enab
  • 任务调度系统(定时任务)

    1 运行流程 Cron表达式 设置触发规则 调度器 调度器本身就是一个线程 并且一定是单例的 如果不是单例 会出现多指挥官 任务乱套问题 存储任务位置 默认保存在内存中 RAMJobStore 出现重启后找不到任务问问题 所以可以在配置文件
  • FastAPI利用装饰器实现定时任务

    因为 FastAPI 本身就是高性能异步框架 所以在不使用任何第三方定时任务模块的情况下 FastAPI 也可以很方便的实现定时任务 创建一个 tasks py 文件 复制下面的装饰器代码 import asyncio from logur
  • ScheduledThreadPoolExecutor有坑嗷~

    概述 最近在做一些优化的时候用到了ScheduledThreadPoolExecutor 虽然知道这个玩意 但是也很久没用 本着再了解了解的心态 到网上搜索了一下 结果就发现网上有些博客在说ScheduledThreadPoolExecut
  • Spring 定时任务之 @Scheduled cron表达式

    一个cron表达式有至少6个 也可能7个 有空格分隔的时间元素 按顺序依次为 秒 0 59 分钟 0 59 小时 0 23 天 月 0 31 但是你需要考虑你月的天数 月 0 11 天 星期 1 7 1 SUN 或 SUN MON TUE
  • linux设置定时任务(crontab)操作步骤

    1 登录服务器 2 输入密码 登录成功 3 查看定时器任务 crontab l 4 编辑定时器任务 crontab e 5 保存定时器任务 1 按住sec退出 2 按住shift 再按 wq 保存并退出 备注 按住shift 再按 q 强制
  • [764]tmux简介及使用教程

    tmux是一个开源工具 用于在一个终端窗口中运行多个终端会话 它可以减少过多的打开终端控制台 tmux的源码在 https github com tmux tmux 它的License是BSD Tmux 是一个终端复用器 terminal
  • SpringBoot第47讲:SpringBoot定时任务 - Netty HashedWheelTimer方式

    SpringBoot第47讲 SpringBoot定时任务 Netty HashedWheelTimer方式 timer 和 ScheduledExecutorService 是JDK内置的定时任务方案 而业内还有一个经典的定时任务的设计叫
  • linux的crontab定时配置全过程

    今天因为业务需求 需要在服务器上配置定时任务执行数据库的sql语句 所以使用到了linux 的crontab 特此记录 分享一下自己的过程 首先呢 我们知道crontab是在linux中用于设定在某些时间可以自动执行某些命令的功能 在lin
  • Springboot 整合Quartz

    目录 一 Quartz介绍 二 Quartz核心元素 1 Scheduler 任务调度器 2 Trigger 触发器 3 JobDetail 定时任务的信息载体 三 Springboot整合Quartz 1 添加Quartz依赖 2 app
  • java corn 定时任务调度,每分钟执行一次,每半个小时执行一次

    java corn 表达式 每分钟执行一次 Scheduled cron 0 1 每半个小时执行一次 Scheduled cron 0 0 30 springboot 类 EnableScheduling Configuration Slf
  • 定时删除centos服务器日志

    现在java程序的日志一般是使用log4j slf4j 来打日志 并且一般都喜欢用DailyRollingFileAppender模式 就是每天产生一个日志 还有一种是 RollingFileAppender模式 这个模式是按文件大小来保存
  • 上个厕所的功夫,就把定时任务的三种调度策略说得明明白白

    Spring Task 无疑是 Spring 环境下单机定时任务的首选 它用起来非常简单 功能也够用 Spring Task 有三种模式 分别是 fixedDelay cron 和 fixedRate 话不多说 我们先看代码 Slf4j C
  • 定时任务之Springboot整合Quartz详解

    文章目录 一 什么是Quartz 二 为什么使用Quartz 1 为什么要用定时任务 2 为什么使用Quartz 三 常见开源定时任务的框架的异同 四 Quartz的组件 五 Quartz持久化 1 为什么要持久化 2 Quartz提供了两
  • java中的实时定时任务管理系统

    java中的实时定时任务管理系统 前言 新增定时任务的线程池配置类 配置ScheduledFuture的包装类 ScheduledFuture是ScheduledExecutorService定时任务线程池的执行结果 实现Runnable接
  • XXL-JOB 分布式定时任务调度平台

    文章目录 1 概述 2 使用 1 概述 首先我们要知道什么是XXL JOB 官方简介 XXL JOB是一个分布式任务调度平台 其核心设计目标是开发迅速 学习简单 轻量级 易扩展 现已开放源代码并接入多家公司线上产品线 开箱即用 XXL JO
  • Azkaban

    文章目录 前言 一 Azkaban是什么 二 Azkaban与其他的工作流调度系统 1 简单的任务调度系统 2 复杂的任务调度 三 Azkaban架构 四 Azkaban配置 basic flow 基础配置 basic flow条件工作流
  • Rabbitmq延迟队列实现定时任务

    场景 开发中经常需要用到定时任务 对于商城来说 定时任务尤其多 比如优惠券定时过期 订单定时关闭 微信支付2小时未支付关闭订单等等 都需要用到定时任务 但是定时任务本身有一个问题 一般来说我们都是通过定时轮询查询数据库来判断是否有任务需要执
  • Windows系统设置每天自动备份指定文件并自动删除七天前的文件(脚本+Windows任务计划)

    Windows系统设置每天自动备份指定文件并自动删除七天前的文件 脚本 Windows任务计划 在生活中和工作中有时候为了避免电脑宕机导致文件丢失常常会使用一些方式去备份文件 今天小编给大家介绍一个方法 用于自动备份指定文件 并删除N天前的

随机推荐

  • 微分算子法个人整理

    陈文灯老师创立的微分算子法 在求解特定的微分方程能够省去大部分的计算时间 很久不写了 这篇为了回顾方便 一同有四种总结 感谢B站BV1D5411776Q的总结 考研加油 稳定发挥
  • [网络安全自学篇] 二十六.Shodan搜索引擎详解及Python命令行调用

    这是作者的系列网络安全自学教程 主要是关于网安工具和实践操作的在线笔记 特分享出来与博友共勉 希望您们喜欢 一起进步 前文分享了Web安全学习路线 并实现了最简单的木马和病毒代码 这篇文章将详细讲述Shodan搜索引擎的基本用法及Pytho
  • Jenkins+Python自动化测试之持续集成详细教程

    前言 今天呢笔者想和大家来聊聊Jenkins Python自动化测试持续集成 废话呢就不多说了哟咱们直接进入主题哟 一 Jenkins安装 Jenkins是一个开源的软件项目 是基于java开发的一种持续集成工具 用于监控持续重复的工作 旨
  • Oracle中如何导出存储过程、函数、包和触发器的定义语句?如何导出表的结构?如何导出索引的创建语句?...

    2019独角兽企业重金招聘Python工程师标准 gt gt gt Oracle中如何导出存储过程 函数 包和触发器的定义语句 如何导出表的结构 如何导出索引的创建语句 QQ群里有人问 如何导出一个用户下的存储过程 麦苗答 方法有多种 可以
  • springboot整合eurake

    Spring Boot整合Eureka是一个比较常见的场景 Eureka是一个服务注册与发现中心 可以方便地管理服务的注册与发现 在整合过程中 需要在pom xml文件中添加对Eureka Server的依赖 并在Spring Boot应用
  • Vue.js 下的瀑布流组件 vue-waterfall

    vue waterfall 详细介绍 Vue js 下的瀑布流组件 ES5 ES6 UMD 兼容 享受数据驱动带来的便利 让事情变得简单
  • 判断t1树中是否有与t2树完全相同的子树

    描述 给定彼此独立的两棵二叉树 树上的节点值两两不同 判断 t1 树是否有与 t2 树完全相同的子树 示例1 输入 1 2 3 4 5 6 7 8 9 2 4 5 8 9 返回值 true 备注 1 n 500000 方法一 递归 要判断t
  • 使用echarts实现简单的关系图谱

    使用echarts实现简单的关系图谱 如图 代码
  • pytorch载入数据与对应的标签,使用torch.utils.data详解,DataLoader的使用

    在进行深度学习处理的时候 我们需要将数据输入到神经网络中进行训练 训练网络的学习能力 其实是根据一定的规则更新网络节点中的参数 而这个规则的来源就是依赖于数据与标签 我们需要将数据与标签相匹配 才能让网络进行训练 比如说网络学习到了一定的特
  • stem教育资源

    人生不同阶段都有不同的使命 在学生阶段 学习掌握知识为以后的人生获得成就的能力 就是这个阶段使命 为了这个使命 他们必须要学习忍耐 学会放弃 学会付出 这不仅仅是学习的需要 也是人生的一种修炼 纵观我们身边的人 但凡取得一定成就的都是要经过
  • 用 LangChain 构建基于资料库的问答机器人(三):ReAct

    大家好 我是 Jambo 我们已经学习了如何使用 LangChain 的一些基本功能 解下我们就应该要结合这些功能来做一些复杂的东西了 但在这之前 为了让同学们更好的理解 LangChain 在这其中做了什么 我想先介绍一下关于 GPT 使
  • 修改索引值python_pandas DataFrame的修改方法(值、列、索引)

    对于DataFrame的修改操作其实有很多 不单单是某个部分的值的修改 还有一些索引的修改 列名的修改 类型修改等等 我们仅选取部分进行介绍 一 值的修改 DataFrame的修改方法 其实前面介绍loc方法的时候介绍了一些 1 loc方法
  • STM32 IAP Ymodem

    STM32 IAP采用Ymodem协议升级固件 公司最近软件需要通过IAP来升级所有板卡的固件 其中板卡有2块 一块主控板卡 一块子控板卡 其中 主控板卡与子控板卡之间采用RS485通信 PC与主控板卡采用RS232通信 具体框架 一 PC
  • pc817光耦参数_光耦在电子电路中有什么作用?关键参数有哪些?一起了解一下...

    光耦作为一个可以对信号进行电气隔离的电子元器件 常用于开关电源电压反馈隔离 电路隔离控制 光耦在电子电路中有不可或缺的地位 了解光偶的特性对学习电子电路有不少帮助 开关电源电压反馈 光耦隔离控制继电器 今天就一起来了解一下光耦吧 电子元器件
  • linkstack头文件 c语言,链式栈的基本操作——LinkStack(C语言版)

    include stdafx h include define OK 1 define ERROR 0 define TRUE 1 define FALSE 0 define MAXSIZE 20 存储空间初始分配量 typedef int
  • odoo10源码win系统开发环境安装图文教程

    前言 odoo10的源码安装教程不太完整或对新手不够友好 本新手再次整合出一份友好的新手教程 老鸟慎入 准备工作 一个干净的window系统 事先没有其他python环境的系统 如果怕系统污染可以先用虚拟机安装熟悉了再正式安装 亲测wind
  • 【论文写作】——设置中英文字体

    打开文件 点击选项 选择高级 取消中文字体也应用于西文的勾选 然后选中全文 设置中文字体为宋体 设置英文字体为times new Roman
  • flask框架

    flask框架 一 flask简介 二 初体验 三 flask配置 1 开启debug模式 2 如何正确显示中文 2 1 配置文件的优化 四 URL与视图 1 构造URL url for 五 指定HTTP方法 六 页面跳转和重定向 七 模板
  • 【PostMan】postman如何发送并发请求

    1 概述 假设我们有一个接口 单次调用可以调通 然后我们将这个接口加入到集合 也可以复制一个接口或者多个到集合 然后点击 后面点击运行就可以模拟 20个线程 轮训集合中的接口 并发的调用
  • [423]定时任务(saturn)

    项目地址 https github com vipshop Saturn 参考文档 https vipshop github io Saturn zh cn 3 0 https vipshop github io Saturn zh cn