如何建设定时任务系统及其管理系统

探讨了在Spring项目中使用Quartz实现定时任务的痛点,如系统重启导致的中断和维护困难。提出通过系统拆分和分布式部署解决这些问题,包括创建独立的定时任务管理系统,以及采用API调用或本地脚本执行的具体方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

定时任务:不用多说,就是系统自动到点执行某个任务或代码。应用场景很多,例如:定时扣款,定时同步数据等等,当然运维人员指定的定时执行脚本程序会更多。

我的工作场景:定时扣款应用较多。

目前实现方式:一个接口系统,功能是接收或转发内部系统与外部系统的消息。后来在上面加了定时任务,由于是Spring项目,使用了quartz,做了一个配置文件,以这样的方式随这个web系统一起执行。

痛点:在一个系统中,即有业务代码又有定时任务,某一个功能升级或改动都得重启进程。其中所有的未升级内容也会中断。

随定时任务的增加,导致难以维护。

解决方案:系统拆分+分布式

具体:

(1)将定时任务系统拆分出来,单独一个系统。该系统可以实现定时任务的CURD,以图形化界面的方式操作比配置文件强太多。这样可以自由查看当前定时任务数量,名称,执行时间等详细内容,还可以查看执行结果等。操作简单,方便。

(2)具体的任务执行代码可以以两种方式实现

1,调用WEB的服务,即API方式。这种方式方便开发及部署,但是要想某一个任务升级不中断其它任务的执行。需要实现多机部署,当升级代码时,将一台机器上的流量切到领外的机器,等这台机器正在执行的代码执行完成后。再切另外的机器。

2,调用本地的脚本,可以是JAR,python脚本,shell脚本等。这种方式开发维护相对复杂。但是可以独立部署升级,某一个脚本代表一个任务,这样任务调用系统单独调用脚本不涉及到其它脚本的中断执行。而且一台机器部署即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值