推荐一款任务调度的开源方案

简介: 在平时的工作中,我们多多少少会有一些定时任务需要处理,有些是在每个服务器上单独部署,有些是在中控端部署,但是这样有一个缺点就是难以形成闭环,我们不知道我们的定时任务是否执行成功,如果需要做信息统计,这个工作量还是蛮大的。

在平时的工作中,我们多多少少会有一些定时任务需要处理,有些是在每个服务器上单独部署,有些是在中控端部署,但是这样有一个缺点就是难以形成闭环,我们不知道我们的定时任务是否执行成功,如果需要做信息统计,这个工作量还是蛮大的。

简单来说,就是下面的痛点了:

  • 需要在每台linux服务器的crontab里一一定义任务

  • 任务的执行监控太不方便了

  • 得登录到每台机器查看定时任务的运行结果,机器一多简直是一种灾难

  • 对于多台机器协同处理一个任务很麻烦,如何保证多台机器上的任务按顺序依次执行?

  • 当任务运行失败,要重新执行,还得重新定义下执行时间,让其重跑,重跑完成了还得改回正常时间

  • 正在运行的任务要kill掉很麻烦,查看进程然后才能kill......

而最近在梳理自动化的一些东西,所以开源的方案都会进入我的视线,我都会多多少少测试一下,看看怎么转换为自己需要的东西,顺便也找找曾经开发的感觉。有一个开源项目opencron引起了我的兴趣。

开源项目的地址是:https://github.com/wolfboys/opencron

整个开源项目的部署还是比较方便的,如果做过Java Web相关的开发,部署起来会很轻松。

说说我对这个项目的理解,开发语言主要是Java,它的架构是基于c/s的方式,在每个需要调用任务的客户端都需要部署一个客户端,然后在服务端来触发,整个工程的编译是使用maven实现,编译后会生成一个war包,拷贝到web容器中,比如tomcat中即可。

对我来说最大的优点是这个项目我能很快得到我希望看到的界面和功能。界面的效果上还是不错的,可以选择差不多10多个主题。

img_5313ddd4eb5838e4832dab08cebeba3f.jpe

而从功能来说,个人认为中间的头像和日历还是不需要的,右边栏的统计很不错,通过这些概览能够很容易得到一个整体的数据。那些任务成功,失败都可以一目了然。

img_a7b41f2b29cfc76241de008771f0e3a5.jpe

还有个不错的功能是对于任务的统计图,有折线图,有饼图。这个效果还是不错的。任务可以手动执行触发,也可以设置重跑次数,超时次数等等。

img_655bea4c5f4dddd52ef1b112b7520db9.jpe

这个webshell的功能真是太炫了。在浏览器中能够开启这样一个ssh会话,我在几年前还曾经写过程序模拟,但是效果都不大好,在这里满足了我之前的一个小小的遗憾。

img_a48921db74288ced14d4c2ebce47391d.jpe

还有个问题就是如果要集成到自动化平台中,其实还是需要不小的工作量,因为自动化平台的技术语言目前是Python,考虑到团队的需求,尽可能减少体系的复杂度,opencron还是有不小的参考价值,在后期如何引入,我觉得可以依旧从试用中得到更多的经验。

我觉得我需要兼任几个角色,比如产品设计,系统架构,然后落地的过程中的开发技术和数据库相关的技术结合,想想挑战还是有的,不管怎么样就是做一件事情,把他做好,先提高团队的工作效率,把那些手工的配置和管理都能够对接到平台上,可以统一管控,如果从业务价值和技术价值的角度来衡量,其实目前来看技术价值有的,业务价值不高,但是如果能够落地,那么业务价值会远大于技术价值,技术工作就是如此,没开始的时候能够天马行空,但是要落到实处,需要付出很多的努力。

之前分享过一起 OpsManage的想法,有很多朋友已经在部署试用了,很多朋友问我一些部署的细节,或者说这个方案是否可以满足工作中的绝大多数需求,我想说的是,应该不会,我认为它最大的优点在于可以减少技术从0开始的复杂度,让你可以快速迭代开发。

对于自动化的开发和问题,大家可以一起交流,入群有验证,标注 公司-职位,一个星期内没有有效发言(发表情不算有效发言),会被请出,先想好再入群。如果你是有经验的老司机,希望能够加入提供技术建议,一起交流,如果你也是在探索的朋友,那就立一个计划吧。我拍个脑袋,一个月也达到什么程度,然后来按照这个时间反推进度。
目录
相关文章
|
2月前
|
NoSQL 关系型数据库 MySQL
分布式任务调度的几种实现
【2月更文挑战第2天】本文主要介绍了分布式任务调度的几种实现,使用Redis实现分布式锁方案,使用MySQL实现任务调度,开源框架 XXL-JOB等方案,最后需要考虑到负载均衡的问题。
56 1
|
3月前
|
中间件 测试技术 调度
设计一个简易版本的分布式任务调度系统
设计一个简易版本的分布式任务调度系统
85 0
|
6月前
|
调度
90分布式电商项目 - SpringTask任务调度框架
90分布式电商项目 - SpringTask任务调度框架
30 0
|
前端开发 Java 调度
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
定时任务几乎是每个业务系统必不可少的功能,计算到期时间、过期时间等,定时触发某项任务操作。在使用单体应用时,基本使用Spring提供的注解即可实现定时任务,而在使用微服务集群时,这种方式就要考虑添加分布式锁来防止多个微服务同时运行定时任务而导致同一个任务重复执行。
707 0
SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能
|
监控 NoSQL Java
几种主流的分布式定时任务,你知道哪些?
几种主流的分布式定时任务,你知道哪些?
|
12月前
|
SQL 分布式计算 监控
开源分布式任务调度系统就选它!
开源分布式任务调度系统就选它!
|
12月前
|
消息中间件 监控 算法
分布式定时任务框架选型
分布式定时任务框架选型
|
调度 数据库
任务调度 Quartzh 框架企业级实战案例
任务调度 Quartzh 框架企业级实战案例
|
JSON 关系型数据库 MySQL
『ScheduleMaster』快速上手一款高可用的开源分布式任务调度平台
📣读完这篇文章里你能收获到 - 了解分布式调度中心的概念 - 博主重新整理的ScheduleMaster系统架构图 - 快速接入ScheduleMaster高可用 - 通过WebAPI接入ScheduleMaster
1019 1
『ScheduleMaster』快速上手一款高可用的开源分布式任务调度平台
|
SQL 负载均衡 NoSQL
全栈开发之Quartz分布式定时任务调度集群
全栈开发之Quartz分布式定时任务调度集群
374 0
全栈开发之Quartz分布式定时任务调度集群