earth-frost

基于 Redis 的分布式任务调度框架
授权协议 Apache
开发语言 Java
所属分类 程序开发、 作业/任务调度
软件类型 开源软件
地区 国产
投 递 者 张卓
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

earth-frost

earth-frost是一个轻量级分布式任务调度框架。

介绍

  • 调度模块和执行模块分离

  • 使用redis作为数据库

  • 基于订阅模式实现服务注册和发现

  • 演示地址: http://www.justlive.vip (请勿恶意攻击)

环境

  • Angular: v1.x

  • JDK: 1.8+

  • Maven: 3+

  • Redis: 2.8+

  • Spring boot: 2.x

  • Thymeleaf: 3

功能

1.0.0

  • 简单易上手,支持web界面进行任务的CRUD

  • 支持动态修改任务的开始,停止

  • 调度中心支持集群部署,将任务的调度进行封装,支持分配各种不同的任务

  • 执行器支持分布式,支持集群部署,可进行相应分组,在调度中心界面查看

  • 支持伸缩扩展,调度中心和执行器都是基于redis订阅模式进行服务注册发现和任务调度,服务上下线发现及时

  • 支持失败重试

  • 任务监控和报警

  • 动态编译任务,支持web界面编辑任务源码,创建任务

  • 支持父子任务

  • 运行报表

1.1.0

  • 支持钉钉预警通知

  • 调度记录增加执行时间

  • 任务超时报警机制

  • 支持分片任务

开发

frost-api
	对外实体和接口
frost-core
	定义调度、执行、注册发现、通知等核心功能的接口和抽象
frost-support-redis
	以redis实现调度、执行、注册发现等接口的支持包
frost-center
	调度中心服务,包含安全认证和UI展示,依赖core实现调度逻辑
frost-executor
	执行器服务,依赖core实现任务执行逻辑,包含开发脚本任务的部分实例以及配置样例	
frost-client
	客户端api,第三方项目可依赖client实现与调度中心交互

快速入门

启动Redis数据库

请下载并安装2.8+版本的Redis,单机或集群模式皆可。

调度中心和执行器均支持集群模式部署,集群模式下各节点需配置相同的Redis服务

导入源码

解压源码,按maven格式将源码导入IDE,源码结构如上述 [开发] 章节。

 相关资料
  • 但是由于网络和其他一些技术问题,我在python脚本中的excel文件将无法在计划时间内更新,因此我需要手动运行python脚本,让我知道一旦文件更新,任何选项都是avl来运行任务调度程序。 例如:我运行python脚本的计划时间是每天上午9点,但我同意如果excel文件未在上午9点在python上更新,任务调度器需要在9点30分运行 提前谢谢。

  • 我需要找到一个合适的方法来开发一个优化算法,它做以下工作: 假设我们有N个任务要做,我们有M个房间,每个房间都包含一些特定数量的基础设施/条件。每项任务都要求使用条件适合任务的房间。 例如,为了完成任务,我们需要使用水龙头和煤气管道,所以我们只能使用包含这些管道的房间。 此外,对于每项任务,我们都有一个预定义的截止日期。 我希望我已经解释得够清楚了。 所以,我需要开发一种算法,可以在适当的时间安排

  • 本文向大家介绍基于Redis实现分布式应用限流的方法,包括了基于Redis实现分布式应用限流的方法的使用技巧和注意事项,需要的朋友参考一下 限流的目的是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务。 前几天在DD的公众号,看了一篇关于使用 瓜娃 实现单应用限流的方案 --》原文,参考《redis in action》 实现了一个jedis

  • 简介 在过去,开发者必须在服务器上为每个任务生成单独的 Cron 项目。而令人头疼的是任务调度不受源代码控制,而且必须通过 SSH 连接到服务器上来增加 Cron 项目。 Laravel 的命令调度程序允许你在 Laravel 中对命令调度进行清晰流畅的定义。并且在使用调度程序时,只需要在服务器上增加一条 Cron 项目即可。调度是在 app/Console/Kernel.php 文件的 sche

  • 基本任务调度 方案1: 通过 @Cron 注解,这个需要依赖 cron4j 框架: //1分钟执行一次 @Cron("*/1 * * * *") public class MyTask implements Runnable { @Override public void run() { System.out.println("task running...");

  • 主要内容:Redis分布式锁介绍,Redis分布式锁命令在分布式系统中,当不同进程或线程一起访问共享资源时,会造成资源争抢,如果不加以控制的话,就会引发程序错乱。此时使用分布式锁能够非常有效的解决这个问题,它采用了一种互斥机制来防止线程或进程间相互干扰,从而保证了数据的一致性。 提示:如果对分布式系统这一概念不清楚,可参考百度百科《分布式系统》,简而言之,它是一种架构、一种模式。 Redis分布式锁介绍 分布式锁并非是 Redis 独有,比如 MySQ