立即咨询

电话咨询

微信咨询

立即试用
商务合作

快来了解一下如何设计一款任务调度系统

2022-11-21

 

    对于写得很烂的电商系统,只要运行一段时间,服务器就会出现Out Of Memory。有一次偶然发现了JDK中的Timer类,似乎也是做这些定时任务的。不由地眼前一亮,但是仔细研究以后就发现,JDKTimer还是太简单了。做点简单的定时任务还行, 对于复杂的情况,尤其是复杂的时间策略,还是力不从心,这时,你需要设计一款任务调度系统

    这个Trigger 可以指定什么时间开始,时间间隔,运行多少次, 能覆盖大部分需求了,可是转念一想,如果有人要求类似日历的重复间隔该怎么处理? 比如每月的第一天运行,或者每周的最后一天运行,该怎么办,crontab特别适合描述这种情况,对,可以搞一个类似于crontabTrigger,那就需要从头设计了, 用“正交”的原则设计出了Logger, Appender, Formatter这些类。

    先想想需求,非常简单,不就是定时地执行任务嘛,“任务”应该是正交中的一个“维度”,我可以抽象出一个接口叫做Task , 嗯,还是叫做Job吧,对使用者来说,他需要提供一个实现类出来。在实现类中描述要做什么事情,比如:生成报表,复制数据。

    “定时”该怎么处理, 定时,定时触发,干脆叫做Trigger吧。看来Trigger最好也是个接口。我来提供几个默认的实现,比如SimpleTriggerCronTrigger,用户还可以扩展,这样就灵活了,JobTrigger也是正交的关系, 两者可以互不影响,可以独立扩展,真是不错。 不仅得意起来,这设计也很简单嘛!但是怎么把这两个家伙结合起来,必须得有个“大管家”才行。这个大管家应该可以接受Job, 然后按照各种Trigger去运行,嗯,叫做调度器Scheduler应该不错。

    如何实现持久化呢,不敢怠慢,赶紧进行新的设计, 他抽象了一个叫做JobStore的接口。表示Job的存储,像什么JobTriggerJob运行情况都存储在其中,下面有两个实现,分别对应内存存储和数据库存储。虽然SQL是标准的,但是不同的数据库还是有细微的差异, 觉得得把这些差异给封装起来。他又提取了一个接口叫做DriverDelegate, 屏蔽了数据库细节,让DbJobStore使用,还提供了一个缺省的实现StdJDBCDelegate,如果那些数据库还有独特的实现,那就写个子类就行了。

    这就是本篇文章关于如何设计一款任务调度系统的简单介绍了。

 

 

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

热门数字化产品

有成CRM有成CRM是一款SaaS模式的客户关系管理软件,以客户管理为核心,包含客户管理、销售全流程管理,合同订单、项目管理、工单管理、呼叫中心、移动审批、数据分析八大模块。旨在助力企业销售全流程精细化、数字化管理,全面解决了企业销售团队的全流程客户服务难题,帮助企业有效盘活客户资源、量化销售行为,合理配置资源、建立科学销售体系,提升销售业绩。
的修物业工单管理系统“的修”平台,全面聚焦物业管理痛点,提供高效报事报修、人员外勤监管、物业数据分析等一站式解决方案。通过多渠道报修、智能巡检、流程进度管控、定点打卡、配件管理、失物招领、意见反馈、智识库、数据分析等功能,打造移动、便捷、高效的数字化管理服务,实现降本增效。
纷呈科技电商开票软件纷呈科技电商开票软件实现多平台店铺订单一站式自动开票,无需托管税盘,企业自行管理,自动同步店铺订单及订单开票信息,在线批量、自动完成订单开票,自动回传发票至各电商平台,买家实时下载,覆盖所以税盘类型,多种模式操作,可自动、批量、单个实现订单开票。
阿里云无影云电脑阿里云无影云电脑(WUYING Workspace)是一种易用、安全、高效的云上电脑,支持快速便捷的创建、部署和统一运维管控。自带多重安全管控能力,支持随时随地访问,资源灵活弹性。广泛应用于安全办公、协同研发、教育实训、私域运营、分支门店、客服办公等。
分贝通企业支出管理平台分贝通企业支出管理方案,全面满足企业费用支出管理需求。一站式企业支出管理平台,体验全新企业支出体验,全流程费控,全场景支付,提供整合的数据及流转。为高成长企业带来一站式的企业支付体验,帮助财务更高效、更数字化的管理费用支出。
为你推荐
千问办公是什么?一文读懂阿里通义千问AI办公执行助手的定位与核心能力

本文系统拆解千问办公的定位、七大核心能力、八类岗位覆盖与三种入口形态,并与传统AI Chat对比,帮助企业判断这款阿里通义千问旗下的AI办公执行助手是否适合自身团队。

2026-07-29
云巴巴荣膺腾讯云黑客松·AI智能体争霸赛(华北赛区)"优秀合伙人",技术实力再获权威认可

7月28日,云巴巴在腾讯云黑客松·AI智能体争霸赛(华北赛区)荣获"优秀合伙人"称号,资深AI专家倪江玮同步获评"优秀奖"。作为同时持有腾讯云AI智能体示范伙伴、WorkBuddy核心伙伴、官方授权服务中心三重认证的企业,云巴巴以"能力共建+全程陪跑"模式打通AI落地"最后一公里",服务制造、法律、金融等八大行业,未来将持续深耕优势赛道并向医疗、零售、教育等领域拓展,做AI时代的长期伴行者。

2026-07-29
WorkBuddy能帮你建"个人知识库"吗?把工作经验变成可复用资产的实测

本文从知识管理真问题剖析、三层记忆沉淀逻辑、专家沉淀技能封装到知识复用智能调用实测,全流程拆解WorkBuddy把工作经验变成可复用资产的实际效果与匹配精度边界,并给出分行业落地建议。

2026-07-29
WorkBuddy能拯救"远程办公的效率黑洞"吗?混合办公模式实测

远程办公这个词,三年前还算"新潮",现在已经是很多公司的日常了。数据表明,国内超过四成的知识工作者每周至少有一天在家办公,混合办公模式正在从互联网行业向传统行业…

2026-07-29
多平台开票工具怎么选?电商通多平台适配电商企业增长曲线

电商企业从1个平台到8个平台的增长曲线,暴露了电商开票管理能力跟不上业务增长的瓶颈。电商通通过一次部署终身扩展的投资保护、新平台即绑即用的零切换成本、多税盘多账户在线协同的电商规模化开票管理、三票种并行覆盖的票种演进适配、数据规模无上限的弹性扩展,让电商开票管理系统跟上企业增长曲线,而非成为增长绊脚石。电商通是电商规模化开票管理的最佳选择。

2026-07-29
查看更多