[发明专利]一种基于动态语言的业务逻辑执行系统及方法有效
申请号: | 201811623920.3 | 申请日: | 2018-12-28 |
公开(公告)号: | CN109739482B | 公开(公告)日: | 2022-04-15 |
发明(设计)人: | 张建虎;汪青峰;姜金旺;夏森丽;张桂权;植东梧;王昊;廖瀚文;唐强;曾懿;肖辉春;李佳丽;陈亮;程相凯 | 申请(专利权)人: | 杭州东信北邮信息技术有限公司 |
主分类号: | G06F8/30 | 分类号: | G06F8/30;G06F9/54 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 310013 浙江*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 语言 业务 逻辑 执行 系统 方法 | ||
1.一种基于动态语言的业务逻辑执行系统,其特征在于,包括有多个业务逻辑执行装置,每个业务逻辑执行装置包括有调度单元和多个加载不同业务的业务虚拟机:
调度单元,用于接收外部装置发送来的命令请求,并从命令请求中提取业务名,然后根据业务和虚拟机映射表,将所述命令请求加入到对应的业务虚拟机的命令请求缓冲区内,
每个业务虚拟机内预置若干数量的协程,业务虚拟机进一步包括有:
业务虚拟机线程,用于定时查看自身的命令请求缓冲区内是否有新的命令请求,当命令请求缓冲区内有新的命令请求、且自身的空闲协程队列中有空闲的协程时,从空闲协程队列中提取一个协程对象,然后将新的命令请求数据注入到被提取的协程中,由被提取的协程执行对应的业务逻辑;
命令请求缓冲区,用于保存由调度单元发送过来的命令请求;
空闲协程队列,用于保存业务虚拟机的当前为空闲状态的协程,
业务虚拟机还包括有:
协程,用于执行业务逻辑,在执行业务逻辑过程中向外部装置发送调用消息后,修改自身状态为挂起状态,并加入到挂起协程队列中,再由业务虚拟机线程继续执行其他已就绪的协程;
响应事件缓冲区,用于保存协程在执行业务逻辑过程中向外部装置发送调用消息后,外部装置所返回的响应事件消息;
挂起协程队列,用于保存业务虚拟机的当前为挂起状态的协程,
协程在执行业务逻辑过程中向外部装置发送调用消息时,在调用消息中添加协程所属的业务虚拟机编号和协程自身编号,当调用消息中不能添加信息时,则将业务虚拟机编号和协程自身编号写入消息映射表,
当业务逻辑执行装置内的调度单元接收到外部装置返回的响应事件消息时,从响应事件消息中提取业务虚拟机编号、或者查询消息映射表获得业务虚拟机编号,然后将响应事件消息加入到对应业务虚拟机的响应事件缓冲区中,
业务虚拟机线程查看自身的响应事件缓冲区内是否有新的响应事件消息,如果有,则从响应事件消息中提取协程编号、或者查询消息映射表获得协程编号,然后将响应事件数据注入到挂起协程队列中对应的协程中,并恢复该协程的业务逻辑代码执行,协程继续执行业务逻辑,
业务逻辑执行装置还包括有:
业务虚拟机管理器,用于定时扫描业务逻辑执行装置内的每个业务虚拟机,判断是否每个业务虚拟机的健康指标超过健康阈值或业务虚拟机线程出现运转异常,如果是,则健康指标超过健康阈值或业务虚拟机线程出现运转异常的业务虚拟机是异常虚拟机,创建一个新的加载相同业务逻辑代码的业务虚拟机实例,并销毁异常虚拟机;如果否,则继续扫描下一个业务虚拟机,
其中,业务虚拟机的健康指标包括但不限于:消息处理总量、消息处理成功量、消息处理失败量、消息处理超时量,
判断业务虚拟机线程是否出现运转异常进一步包括但不限于:判断业务虚拟机指标是否正常、或判断业务虚拟机线程运转心跳是否正常,
业务虚拟机线程运转心跳是否正常通过心跳埋点来检查,即业务虚拟机线程在空闲、处理新命令请求、处理新响应事件时,更新心跳埋点以向业务虚拟机管理器上报心跳时间,当业务虚拟机管理器检测到业务虚拟机线程运转心跳的更新时间超过更新时间阈值,则表示业务虚拟机线程出现运转异常,业务逻辑执行装置还包括有:
业务虚拟机管理器,定时扫描业务逻辑代码文件,并判断每个业务逻辑代码文件是否发生了变化,如果发生了变化,则根据变化后的业务文件,创建一个新的业务虚拟机,读取业务和 虚拟机映射表中该业务对应的原业务虚拟机,将业务和 虚拟机映射表中的原业务虚拟机修改为新的业务虚拟机,以使得新的命令请求被分发给新的业务虚拟机,并将原业务虚拟机放入到待回收虚拟机队列,当原业务虚拟机处理完已分配的存量命令请求后,从待回收虚拟机队列中回收原业务虚拟机,
业务逻辑执行装置还包括有:
业务虚拟机管理器,定时扫描API支撑库文件,并判断每个API支撑库是否发生了变化,如果发生了变化,则获取所有依赖该发生了变化的API支撑库的业务虚拟机,并由获取的所有业务虚拟机构成原业务虚拟机列表,然后从原业务虚拟机列表中逐一提取每个原业务虚拟机,对所提取的原业务虚拟机的处理如下:根据变化后的API支撑库,创建一个新的业务虚拟机,将业务和 虚拟机映射表中的原业务虚拟机修改为新的业务虚拟机,以使得新的命令请求被分发给新的业务虚拟机,并将原业务虚拟机放入到待回收虚拟机队列,当原业务虚拟机处理完已分配的存量命令请求后,从待回收虚拟机队列中回收原业务虚拟机。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州东信北邮信息技术有限公司,未经杭州东信北邮信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811623920.3/1.html,转载请声明来源钻瓜专利网。
- 上一篇:生成交互式应用程序的方法及系统
- 下一篇:用于生成语句的方法和装置