# event-driven-task **Repository Path**: xiaqiuyue0927/event-driven-task ## Basic Information - **Project Name**: event-driven-task - **Description**: a flexible&effective event driven task base on db - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-13 - **Last Updated**: 2024-05-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # event-driven-task ## 软件说明 一个简单的、灵活的、高效的,基于数据库实现的事件驱动 ### 研发背景 市面上存在任务类框架: > 一类是定时驱动的框架,基于时间驱动,并且,也有对分布式环境做出相应的处理;比较优秀的产品包括xxl-job、elasticjob等 > 一类是事件驱动的框架,但其架构特点,倾向于单机环境,如Spring event > 一类是工作流模式的框架,可以支持流程编排,流程可视化等等功能,如flowable 若是使用场景是数据量大、需要支持分布式的话,以上述方案作为解决方案会各有不足。定时驱动的框架,需要二次开发,否则无法很好的支持事件驱动;事件驱动的框架,因其不能在分布式环境上断点继续执行的特点,只能放弃;工作流模式的框架,若遇到数据量过大的的场景,效率会很低。 所以,是想开发一款简单地、支持分布式场景、基于数据库实现的的框架。 那么想一下,为什么市面上看不到这类的框架 * 1、这类框架相对较复杂,既要处理事件,又要处理存储,更要兼顾性能等因素 * 2、这类框架的侵入性较强,因其要做数据库存储,所以必然会涉及到SQL,创建新的表等等,对于原代码的侵入性较强 * 3、这类框架的使用成本较高,不像大部分框架拿来即用,需要配置的、需要了解的内容较多,不会、也不太可能做出只需要傻瓜式的一键配置就能使用 故受众很小,做出框架并维护,很大可能是吃力不讨好。 我这里想做,并非是不信邪,非要撞南墙,只是单纯地想把自己的想法、框架写出来。 大家可以学习、可以使用 ### 风险 * 1、这个框架的设计思想,我是曾经在一家大厂工作时,看过的框架;因考虑到风险,所以,这里只用了其核心的设计思想,所有的代码都是我自己、按我自己的想法编写,可能会比原来的好,也可能会差,但是这样或许会更安全(软件设计思想或许不受专利、专著或保密的保护,但也可能只是心理安慰) * 2、因代码的复杂性,以及个人开发的不确定性,建议在使用前,一定要了解框架,再进行使用;与此同时,我也会尽可能把代码简化,并附加必要的注释内容 ### 设计目标 * 1、基于数据库存储,兼容各种主流数据库 * 2、在数据的处理上,尽可能地高效 * 3、支持分布式场景,并做到,在性能上,可水平扩展