[发明专利]一种多进程数据更新方法、装置、介质和电子设备有效
申请号: | 201910460174.9 | 申请日: | 2019-05-30 |
公开(公告)号: | CN110221854B | 公开(公告)日: | 2023-02-28 |
发明(设计)人: | 曾磊 | 申请(专利权)人: | 北京字节跳动网络技术有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京国昊天诚知识产权代理有限公司 11315 | 代理人: | 李潇 |
地址: | 100041 北京市石景山区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 进程 数据 更新 方法 装置 介质 电子设备 | ||
本公开提供了一种多进程数据更新方法、装置、介质和电子设备,该请求方法包括:服务进程实时监听是否有数据更新指令,若监听到所述更新指令,将所述更新指令发送至主进程;所述主进程根据所述更新指令确定所述更新指令的更新目标,所述更新目标包括至少一个工作进程;所述更新目标根据所述更新指令将需要更新的参数发送至对应的记忆堆栈;所述记忆堆栈从数据仓库中获取更新的数据,完成对应进程数据的更新。本方法可以有效的解决代码的快速更新问题,主动更新而非被动或者周期性更新,可以最快速度将最新的代码更新到服务器;本方法还可以实现指定进程的代码更新,对于某些需要对进程区别对待更新的场景下是一种有效的解决方案。
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种多进程数据更新方法、装置、介质和电子设备。
背景技术
在计算机程序应用过程中,往往需要对其中的某些数据模块进行更新。为了保障服务的连续性、稳定性,服务商往往在代码空闲时段(例如夜间)进行代码更新。
通常的数据更新方式包括:
一、服务备份/主备切换,这样的问题是需要提供额外的成本(硬件成本和部署成本),无疑增加了运营成本。
二、代码周期性更新,利用动态语言特性进行更新,例如在代码里预先设置好接口,周期性的去检查文件的时间戳,当发现文件有更新了之后就再触发更新逻辑。例如java的实现方式为:先定义好接口类,再利用ClassLoader类的loadClass方法来完成类的实际加载工作。
上述方法存在如下缺陷:
一、无法实时进行更新,如上所述,主流的动态代码更新方案都是预设接口,设立周期性检查规则进行代码的更新,代码更新之后,要等到进入下一个更新周期才生效。
二、无法指定进程单独进行行更新,通常我们会通过fork(复刻或派生)的方式在服务中创建很多个进程,每个进程对一个客户进行服务,例如在socket的网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次接收一个新的客户端连接就fork出一个子进程专门服务这个客户端。如果我们只希望只是针对某个进程进行代码单独更新,别的fork进程就不进行代码更新,这个时候现有的方案就没法支持了。
本公开的目的在于提供一种多进程数据更新方法、装置、介质和电子设备,能够解决上述提到的至少一个技术问题。具体方案如下:
根据本公开的具体实施方式,第一方面,本公开提供一种多进程数据更新方法,包括:
服务进程实时监听是否有数据更新指令,若监听到所述更新指令,将所述更新指令发送至主进程;
所述主进程根据所述更新指令确定所述更新指令的更新目标,所述更新目标包括至少一个工作进程;
所述更新目标根据所述更新指令将需要更新的参数发送至对应的记忆堆栈;
所述记忆堆栈从数据仓库中获取更新的数据,完成对应进程数据的更新。
可选的,所述服务进程实时监听是否有数据更新指令,若监听到所述更新指令,将所述更新指令发送至主进程,包括:
服务进程从网络接口实时监听是否有数据更新指令;
若监听到所述更新指令,将所述更新指令发送至内部通讯池,所述内部通讯池用于通过各自的通讯接口实现所述主进程与不同所述工作进程和/或所述服务进程的通讯;
所述内部通讯池通知所述主进程进行数据更新。
可选的,所述更新目标根据所述更新指令将需要更新的参数发送至对应的记忆堆栈,包括:
所述至少一个工作进程通过对应所述通讯接口接收所述更新指令;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京字节跳动网络技术有限公司,未经北京字节跳动网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910460174.9/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置