事件驱动与定时调度

简介: 背景 事件驱动和定时调度任务,都是为了完成某类具有特定触发条件的业务逻辑。但是也存在较多的不同点。 事件驱动 事件驱动是一种设计思想,把不同业务逻辑用“事件”关联起来,用“事件”来驱动业务或者流程往下走。

背景

事件驱动和定时调度任务,都是为了完成某类具有特定触发条件的业务逻辑。但是也存在较多的不同点。

事件驱动

事件驱动是一种设计思想,把不同业务逻辑用“事件”关联起来,用“事件”来驱动业务或者流程往下走。非常典型的业务,就是工人流水线。第一个工人接受订单,分发到第二个工人,第二个工人选取零配件传递给第三个工人,第三个工人进行组装,组装完毕后传递给第四个工人,第四个人工人包装后,送上车。整条链路就完成了。
这里比较明显的特点是,每个工人理论上来说,无法预估上个工人什么时候完成,只能坐等;另外,每个节点存在一定的性能瓶颈,在某个环节由于处理的速度过慢,会导致较多的积压。

定时任务

定时任务,从名称就可以看到,就是定时指定业务逻辑的任务。明显的特点,就是具有定时性,即到了特定的时间点执行具体的业务。这类非常多,比如常见的闹钟、定时消息推送、淘宝定时确认收货、支付宝定时确认打款给卖家等等。
一般来说,定时任务就是异步的独立调度任务,存在一定的延迟性,当然不同的业务,对延时的要求是不同的。
比如,闹钟延迟个1000毫秒无伤大雅;订单过期延迟个1分钟也没有关系。有的业务则对延迟有严格要求,比如定时秒杀。

架构设计

对于事件驱动来说,只要业务扔出事件,由事件来驱动业务进行则可。那么重要的一点,就是事件源非常重要,即事件驱动必须要保证事件源的稳定性和准确性。同时在大部分情况下,无法保证每个事件可以被及时处理以及保证处理成功。因此在设计时,要保证事件具备重放能力。一般来说,事件可能是从其他非自身的事件源发出,无法要求其他业务方能够重放,因此,系统自身需要对事件做持久化来具备重放能力。
此时,系统自身对事件的重放,则需要使用到定时任务的功能。
当然,如果初始事件源具备重放的能力,则系统自身可以不用设计持久化,只要保证幂等即可。这种纯事件驱动设计就变得非常轻量、优雅。

事件驱动的优点

事件驱动作为一种上手比较困难的设计模型来说,存在较多的优点。最主要的,是资源节约和准实时性。事件驱动替代了轮询式的特点,轮询时必须要保证程序采用高频循环来推动业务继续流转下去。而事件驱动则直接利用监听的方式,来推动业务的流转。

目录
相关文章
|
开发框架 前端开发 Java
GitHub首次开源标星20k+项目:Guns-现代化主流Java应用开发框架
Guns是一个现代化的Java应用开发框架,基于主流技术Spring Boot2 + Vue3,Guns的核心理念是提高开发人员开发效率,降低企业信息化系统的开发成本
|
3月前
|
人工智能 监控 Kubernetes
稳定支撑大规模模型调用,携程旅游的 AI 网关实践
为了进一步提升服务水平和服务质量,携程很早就开始在人工智能大模型领域进行探索。而随着工作的深入,大模型服务的应用领域不断扩大,公司内部需要访问大模型服务的应用也越来越多,不可避免的就遇到了几个问题,我们自然就会想到使用网关来对这些服务接入进行统一管理,并增加各种切面上的流量治理功能。
374 40
|
3月前
|
机器学习/深度学习 算法 5G
【模型预测控制MPC】使用二次规划来模拟多输入多输出(MIMO)系统的模型预测控制(Matlab代码实现)
【模型预测控制MPC】使用二次规划来模拟多输入多输出(MIMO)系统的模型预测控制(Matlab代码实现)
175 4
|
10月前
|
安全 搜索推荐 网络安全
一文详解:HTTPS有哪些优势?
HTTP协议的明文传输存在安全隐患,尤其在涉及敏感信息(如银行卡号、密码)时,数据易被截获。为解决这一问题,HTTPS协议应运而生。HTTPS在HTTP基础上加入SSL/TLS加密层,确保数据传输的安全性和完整性,防止中间人攻击。使用HTTPS不仅能保护用户隐私,还能提升网站的信任度和搜索引擎排名,增加在线交易量,帮助企业防钓鱼、提升流量与收益。随着网络安全形势日益严峻,企业应积极采用HTTPS,保障数据安全,促进良性发展。
|
Java 计算机视觉 Python
我的自描外挂制作日志——FPS类游戏的自瞄【优化改进1】
我的自描外挂制作日志——FPS类游戏的自瞄【优化改进1】
516 1
|
NoSQL Java Redis
Redlock分布式锁高并发下有什么问题
Redlock分布式锁在高并发场景下可能面临的问题主要包括:网络延迟、时钟偏移、单点故障、宕机重启问题、脑裂问题以及效率低等。接下来,我将使用Java代码示例来说明其中一些问题。
418 12
|
运维 Kubernetes Cloud Native
主流定时任务解决方案全横评
定时任务作为一种按照约定时间执行预期逻辑的通用模式,在企业级开发中承载着丰富的业务场景,诸如后台定时同步数据生成报表,定时清理磁盘日志文件,定时扫描超时订单进行补偿回调等。
主流定时任务解决方案全横评
|
机器学习/深度学习 传感器 算法
基于线性二次调节器(LQR)法实现机器人路径规划附matlab代码
基于线性二次调节器(LQR)法实现机器人路径规划附matlab代码
|
机器学习/深度学习 算法 机器人
智能问答机器人
    智能问答机器人目前已经在自动化客服领域得到了广泛的应用,取得不错的效果。这种技术可以比较好地使用在各种咨询类的场景中,如售前的导购、售后的服务、医院的导诊、甚至医疗的辅助诊断等等。机器人可以迅速地响应用户的请求,提升服务的体验。也可以同时服务大量的用户,极大降低企业提供服务的成本。智能问答机器人一般采用一问一答的方式,高级一些的会采用多轮对话和主动对话的方式,
12561 0
|
移动开发 前端开发 rax
开放下载!1500页,40万字,淘系技术2020总结黑皮书来了
作为阿里巴巴新零售技术的王牌军,基于淘系丰富的商业和业务形态,淘系技术在大前端、音视频、端智能、用户增长、客户端架构、服务端架构、云原生、技术质量以及AI等技术领域有着丰富的思考和沉淀。淘系技术将2020一整年的精华内容梳理合并,重磅推出《技术人的百宝黑皮书》,本文从前沿技术、职场成长经验及学习问答、技术人必读书单、淘系经典开源项目以及2020淘系顶会paper等五个方面进行简要介绍。
开放下载!1500页,40万字,淘系技术2020总结黑皮书来了