2019独角兽企业重金招聘Python工程师标准>>>

推荐一款开源任务抢占系统

文章来源 : Radish 任务抢占系统

项目开源地址 gitee: https://gitee.com/shensuoyao/radish

项目开源地址 github:https://github.com/shensuoyao/radish

项目开发过程中不可避免需要用到定时任务,开发定时任务有时候是个头疼的事情。尤其是对中小项目来说,任务往往被嵌入在项目中。然而定时任务通常是难以测试的,这样就导致了定时任务的开发困难,测试困难。伴随着项目的迭代更新,任务也跟着每次重新部署。产生的不可控导致bug常出。

聪明的开发者往往会把任务和项目分开,为了达到解耦的目的,最简单粗暴的方法就是使用脚本语言编写定时任务,然后配置到系统调度器crontab中,这样业务项目就跟定时任务解耦了。虽然这样做对于中小项目的定时任务可以达到一定的效果,但同样也存在一些问题,最简单比如任务的日志,你需要知道任务的执行成功与失败,有时候还需要查看任务的日志数据是否满足要求等等,对于这种情况就显得很不方便了。

这里推荐一款开源的任务抢占系统,适用于中小项目的任务管理。部署简单,依赖少。

Radish 任务抢占系统,根据作者的介绍,该系统适用于中小项目,难得的是居然还实现了任务依赖和监控。

Radish区别与传统的任务调度系统点在于其理念新颖,传统的任务调度系统是通过主控调度器生成任务,并选择执行机执行。任务调度不够灵活,对于复杂的任务依赖问题难于解决,当任务并发量增大时,主调度器就显得有些吃力了。而任务的调度器和执行机之间通过RPC双向依赖执行,在专有网络或私有集群中一般无法实现双向依赖部署(出于安全的考虑,一般是专有网络能访问外网,而外网无法直接访问专有网络中的机器)。Radish则将任务解释为“配置”,而具体的任务执行解释为“事件”。 调度器通过任务“配置”,每次调度生成一个可执行“事件”。客户机通过单项RPC向主控服务请求触发可执行“事件”,执行机之间通过抢占的方式获取可执行事件到本地执行,最后将执行结果反馈给主控服务。这种模式解决了由主控来统一调度任务的复杂度。并且通过任务的“配置”,可以很方便的定义任务之间的依赖关系。当生成可执行事件的时候,如果某一事件的执行必须在另一事件完成后的条件下才能执行,那么该事件就会一直等待,直到其依赖的事件被执行后才能被执行。通过这种方式很好的解决了任务链的场景(举个简单的例子,工作流中的各节点事件,就可以定义为一个独立的任务链来执行)。

转载于:https://my.oschina.net/u/244775/blog/2052322

Radish 任务抢占系统相关推荐

  1. uniapp实现音频播放抢占系统音频焦点

    项目为使用uniapp框架开发的Android/iOS APP应用 实现功能需求 假设手机正在播放音乐,当前APP处于前台收到消息,需播放提示音提示用户.目标为降低后台正在播放音乐的音量,播放提示音, ...

  2. linux应用程序抢占键盘,linux 系统挂起

    尽管内核代码的大部分 bug 以 oops 消息结束, 有时候它们可能完全挂起系统. 如果系 统挂起, 没有消息打印. 例如, 如果代码进入一个无限循环, 内核停止调度,[15]15 并且系 统不会响 ...

  3. linux 挂起 移动电脑,linux 系统挂起

    尽管内核代码的大部分 bug 以 oops 消息结束, 有时候它们可能完全挂起系统. 如果系 统挂起, 没有消息打印. 例如, 如果代码进入一个无限循环, 内核停止调度,[15]15 并且系 统不会响 ...

  4. linux 系统自动挂起,linux 系统挂起

    尽管内核代码的大部分 bug 以 oops 消息结束, 有时候它们可能完全挂起系统. 如果系 统挂起, 没有消息打印. 例如, 如果代码进入一个无限循环, 内核停止调度,[15]15 并且系 统不会响 ...

  5. es数据更新时间_京东到家订单中心系统mysql到es的转化之路

    原文:https://www.toutiao.com/i6796507988602389006 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大 ...

  6. mysql订单迁移es_京东到家订单中心系统mysql到es的转化之路

    京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况. 我们把订单数据存储在MySQL中,但显然只通过DB来支撑大量的 ...

  7. 「轻阅读」京东到家订单中心系统mysql到es的转化之路

    IT实战联盟博客:http://blog.100boot.cn 原文:https://www.toutiao.com/i6796507988602389006 京东到家订单中心系统业务中,无论是外部商 ...

  8. MySQL用得好好的,为什么要转ES?

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:京东技术(ID: jingdongjishu) 京东到家订单 ...

  9. TI 实时操作系统SYS/BIOS使用总结

    1:概述: SYS/BIOS 是一个可扩展的实时的操作系统.具有非常快速的响应时间(在中断和任务切换时达到较短的延迟),响应时间的确定性,强壮的抢占系统,优化的内存分配和堆栈管理(尽量少的消耗和碎片) ...

  10. 京东把 Elasticsearch 用的真牛逼!

    来源:京东技术(ID: jingdongjishu) 京东到家订单中心系统业务中,无论是外部商家的订单生产,或是内部上下游系统的依赖,订单查询的调用量都非常大,造成了订单数据读多写少的情况. 我们把订 ...

最新文章

  1. STM32F103C8/BT6最小系统原理图、PCB
  2. Android 消息异步处理之AsyncTask
  3. LINUX下UDP实现消息镜像通信,linux环境下基于udp socket简单聊天通信
  4. Nancy之结合tinyfox给我们的应用提供简单的数据服务
  5. javaScript初学者易错点
  6. IBM 公开最新 Power 处理器架构
  7. 前端传值后端接收不到_解决vue get请求传参后端接收不到参数值(java sptingboot)
  8. 10张劲爆眼球的科学动图
  9. P3203-[HNOI2010]弹飞绵羊【分块】
  10. java代码测试---插入排序和选择排序
  11. bool 取反_dataframe根据bool值高效地进行多重条件筛选的
  12. python解析与输出emoji
  13. ES6新特性_Promise封装读取文件---JavaScript_ECMAScript_ES6-ES11新特性工作笔记025
  14. 线性系统和非线性系统——《应用非线性动力学》读书笔记
  15. R语言编程环境的安装和运行
  16. 华为云D-Plan解决方案为企业数智升级注入AI新动力
  17. CString字符串操作
  18. 机器学习——神经网络、深度学习 知识点总结 及 面试题汇总
  19. 引流软件的操作原理是怎样的,引流软件效果是不是很好?
  20. mybasit执行sql语句报类型转换失败java.lang.NumberFormatException

热门文章

  1. android转发短信到邮箱,利用短信通知的方式在Tasker中实现收到Android手机短信自动转发到邮箱...
  2. 如何使用腾讯云GPU云服务器完成 blender 的动画图片渲染
  3. 论实力和智慧,美的微晶冰箱有点东西!
  4. QPS、TPS、并发用户数、吞吐量
  5. 靶向测序的CNV分析简介
  6. 解决Windows10家庭版系统无法安装Docker Desktop问题
  7. 已知某网络有一个地址是167.199.170.82/27,问这个网络的网络掩码。
  8. qt 雷达扫描障碍物_激光雷达Lidar与毫米波雷达Radar:自动驾驶的利弊
  9. sublime text2配置文件详解(转)
  10. springboot框架直接访问静态页面