应用于服务器进程的时间修改方法、系统、设备、介质及程序产品与流程

文档序号:30080892发布日期:2022-05-18 04:20阅读:170来源:国知局
应用于服务器进程的时间修改方法、系统、设备、介质及程序产品与流程

1.本发明涉及数据处理技术领域,特别涉及一种应用于服务器进程的时间修改方法、系统、设备、介质及程序产品。


背景技术:

2.在软件产品(例如游戏)的开发测试环境、预生产环境下,往往需要构建多个不同的进程,这些进程彼此之间应互不干扰,以同时满足多个用户的不同需求。
3.时间作为进程的一条重要的基本属性,在开发测试环境下,往往需要频繁进行修改以满足特定应用场景的测试需求。在进程启动时,通常情况下会以宿主机的时间作为进程启动的时间,通过修改宿主机的本地时间,可以达到修改进程时间的需求。但这样做会导致在此宿主机上运行的其他进程的时间也受到影响,因此如何在修改目标进程逻辑时间的前提下,不影响其他进程的逻辑时间,成为至关重要的问题。
4.现有技术中,一种方法是通过修改时间判断接口的时间点的方式修改任务进程的时间,但是这种方式在对进程进行重启操作后,必须重新配置目标时间,给开发测试工作带来了不便。
5.此外,对于利用erlang平台开发的软件项目,如果项目的微进程使用了定时器(timer)模块来达成执行某段定时或延时任务逻辑的目的,那么在该微进程运行过程中修改进程逻辑时间操作时,会产生由于时间混乱而错误执行多次定时或延时任务的问题,从而导致微进程卡死,内存溢出甚至崩溃等问题。


技术实现要素:

6.针对现有技术的上述问题,本发明的目的在于提供一种应用于服务器进程的时间修改方法、系统、设备、介质及程序产品,能够使得进程重启后仍能延续前期时间修改状态,确保进程的时间延续性。
7.为了解决上述问题,本发明提供一种应用于服务器进程的时间修改方法,包括:
8.接收步骤,在目标进程运行过程中,接收时间修改指令;
9.第一修改步骤,基于所述时间修改指令对所述目标进程的逻辑启动时间进行修改;
10.第一确定步骤,根据修改后的逻辑启动时间确定所述目标进程对应的当前时间偏移量并存储;
11.判断步骤,判断所述目标进程是否重启;
12.第一获取步骤,在所述目标进程重启时,获取当前真实时间;
13.第二确定步骤,根据所述当前时间偏移量和所述当前真实时间确定所述目标进程的逻辑重启时间并存储。
14.可选地,所述第一修改步骤包括:
15.获取所述时间修改指令对应的第一目标逻辑时间;
16.获取所述目标进程的当前运行时间;
17.根据所述第一目标逻辑时间和所述当前运行时间确定所述目标进程的目标逻辑启动时间;
18.将所述目标进程的逻辑启动时间修改为所述目标逻辑启动时间。
19.可选地,所述第一确定步骤包括:
20.获取所述目标进程的修改前的逻辑启动时间;
21.根据所述修改前的逻辑启动时间和所述修改后的逻辑启动时间确定新增时间偏移量;
22.获取所述目标进程对应的历史时间偏移量;
23.根据所述历史时间偏移量和所述新增时间偏移量确定所述目标进程对应的当前时间偏移量并存储。
24.可选地,所述第二确定步骤包括:
25.将所述当前真实时间增加所述当前时间偏移量后,作为所述目标进程的逻辑重启时间。
26.可选地,所述方法还包括:
27.第二获取步骤,在所述目标进程重启时,获取第二目标逻辑时间;
28.第二修改步骤,如果获取到第二目标逻辑时间,则根据所述第二目标逻辑时间和所述当前真实时间对所述当前时间偏移量进行修改;
29.相应地,所述第二确定步骤包括:
30.根据修改后的当前时间偏移量和所述当前真实时间确定所述目标进程的逻辑重启时间并存储。
31.可选地,在所述第一修改步骤之后,所述方法还包括:
32.重置步骤,当所述目标进程中包括定时器任务时,重置所述目标进程对应的所有定时器任务。
33.本发明另一方面提供一种应用于服务器进程的时间修改系统,包括:
34.接收模块,用于在目标进程运行过程中,接收时间修改指令;
35.第一修改模块,用于基于所述时间修改指令对所述目标进程的逻辑启动时间进行修改;
36.第一确定模块,用于根据修改后的逻辑启动时间确定所述目标进程对应的当前时间偏移量并存储;
37.判断模块,用于判断所述目标进程是否重启;
38.第一获取模块,用于在所述目标进程重启时,获取当前真实时间;
39.第二确定模块,用于根据所述当前时间偏移量和所述当前真实时间确定所述目标进程的逻辑重启时间并存储。
40.本发明另一方面提供一种计算机设备,包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现如上述的应用于服务器进程的时间修改方法的步骤。
41.本发明另一方面提供一种计算机可读存储介质,其上存储有计算机程序/指令,该
计算机程序/指令被处理器执行时实现如上述的应用于服务器进程的时间修改方法的步骤。
42.本发明另一方面提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述的应用于服务器进程的时间修改方法的步骤。
43.由于上述技术方案,本发明具有以下有益效果:
44.根据本发明实施例的应用于服务器进程的时间修改方法,通过在目标进程运行过程中,基于时间修改指令对目标进程的逻辑时间进行修改,并对目标进程对应的当前时间偏移量进行修正,在目标进程重启时,可以基于所述当前时间偏移量确定目标进程的逻辑重启时间,使得所述目标进程可以读取所述逻辑重启时间启动,保证所述目标进程重启后仍能延续前期时间修改状态,从而确保进程的时间延续性。
附图说明
45.为了更清楚地说明本发明的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
46.图1是本发明一个实施例提供的计算机设备的结构示意图;
47.图2是本发明一个实施例提供的应用于服务器进程的时间修改方法的流程图;
48.图3是本发明一个实施例提供的用户界面示意图;
49.图4是本发明另一个实施例提供的应用于服务器进程的时间修改方法的流程图;
50.图5是本发明一个实施例提供的应用于服务器进程的时间修改系统的结构示意图;
51.图6是本发明另一个实施例提供的应用于服务器进程的时间修改系统的结构示意图。
具体实施方式
52.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
54.为了使本发明实施例公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明实施例进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用
以解释本发明实施例,并不用于限定本发明实施例。
55.本发明实施例提供的应用于服务器进程的时间修改方法可以在多种计算机设备中执行,例如移动终端、计算机终端、服务器或者类似的运算装置和系统等。具体地,所述计算机设备包括存储器、处理器及存储在存储器上的计算机程序,所述处理器执行所述计算机程序以实现应用于服务器进程的时间修改方法的步骤。
56.其中,存储器可用于存储计算机程序以及模块,处理器通过运行存储在存储器的计算机程序以及模块,从而执行各种功能应用以及数据处理。存储器可主要包括程序存储区和数据存储区,其中,程序存储区可存储操作系统、功能所需的计算机程序等;数据存储区可存储根据所述设备的使用所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器还可以包括存储器控制器,以提供处理器对存储器的访问。
57.参考说明书附图1,其示出了本发明一个实施例提供的计算机设备的硬件结构示意图。如图1所示,所述计算机设备可以为服务器100,该服务器100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing unit,cpu)110(例如,一个或一个以上处理器)和存储器130,一个或一个以上存储计算机程序123或数据122的存储介质120(例如一个或一个以上海量存储设备)。其中,存储器130和存储介质120可以是短暂存储或持久存储。存储在存储介质120的程序可以包括一个或一个以上模块,每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器110可以设置为与存储介质120通信,在服务器100上执行存储介质120中的一系列指令操作。服务器100还可以包括一个或一个以上电源160,一个或一个以上有线或无线网络接口150,一个或一个以上输入输出接口140,和/或,一个或一个以上操作系统121,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
58.输入输出接口140可以用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务器100的通信供应商提供的无线网络。在一个实例中,输入输出接口140包括一个网络适配器(network interface controller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,输入输出接口140可以为射频(radio frequency,rf)模块,其用于通过无线方式与互联网进行通讯,所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,gsm)、通用分组无线服务(general packet radio service,gprs)、码分多址(code division multiple access,cdma)、宽带码分多址(wideband code division multiple access,wcdma)、长期演进(long term evolution,lte)、电子邮件、短消息服务(short messaging service,sms)等。
59.本领域技术人员可以理解,图1所示的结构仅为示意,服务器100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
60.参考说明书附图2,其示出了本发明一个实施例提供的应用于服务器进程的时间修改方法的流程,所述方法可以应用于软件产品(如游戏)的开发测试环境中,执行测试任务的硬件机器上可以运行一个或者多个测试进程,在测试过程中,经常需要修改进程的时间来满足特定应用场景的测试需求。具体地,如图2所示,所述方法可以包括以下步骤:
61.s210:接收步骤,在目标进程运行过程中,接收时间修改指令。
62.在所述接收步骤s210中,在目标进程运行过程中,可以向用户提供用于进行时间修改的用户界面,并获取用户通过所述用户界面输入的时间修改指令。
63.可选地,所述时间修改指令中可以包括待修改至的第一目标逻辑时间,所述第一目标逻辑时间可以由用户输入。示例性地,如图3所示,其示出了本发明一个实施例提供的用户界面的示意图,用户可以在所述用户界面的时间输入框310中输入待修改至的第一目标逻辑时间,并点击所述用户界面中的时间修改控件320,即可生成对应的时间修改指令。所述第一目标逻辑时间即用户希望立即生效的目标进程的当前时间,如某个游戏应用中的任务是12:00开始,该任务对应的目标进程的当前时间为11:00,为了测试该任务功能,用户输入第一目标逻辑时间为11:59,点击时间修改控件320后,该目标进程的当前时间即可变更为11:59,很快就能进入任务的触发时间。然而,仅通过上述指令方式对目标进程的时间进行修改,当目标进程再次启动后,仍会从前期预设的逻辑启动时间开始,用户需要再次输入第一目标逻辑时间进行修改方可进行测试,十分不便。故需要通过下述步骤对目标进程的逻辑启动时间进行同步修改,以便目标进程迅速按照用户意图的逻辑时间启动。
64.s220:第一修改步骤,基于所述时间修改指令对所述目标进程的逻辑启动时间进行修改。
65.在所述第一修改步骤s220中,所述逻辑启动时间可以存储在预设的目标时间文本中,用于表示所述目标进程上次启动的逻辑时间。所述目标进程每次启动时,都会读取目标时间文本中的逻辑启动时间并以该逻辑启动时间作为该目标进程的起始时间节点。在目标进程正常运行的情况下,所述逻辑启动时间保持不变,在目标进程运行过程中,实时读取的当前时间为所述逻辑启动时间加上目标进程的当前运行时间,所述目标进程的当前运行时间是不断变化的,自所述目标进程启动后从0开始累加,每过1秒,当前运行时间加1秒。可选地,所述逻辑启动时间的格式可以为日期格式(日期+时分秒)。
66.可选地,所述第一修改步骤s220可以包括:
67.获取所述时间修改指令对应的第一目标逻辑时间;
68.获取所述目标进程的当前运行时间;
69.根据所述第一目标逻辑时间和所述当前运行时间确定所述目标进程的目标逻辑启动时间;
70.将所述目标进程的逻辑启动时间修改为所述目标逻辑启动时间。
71.具体地,在接收到所述时间修改指令后,可以对所述时间修改指令进行解析,得到所述第一目标逻辑时间。
72.具体地,所述当前运行时间为所述目标进程从启动到开始执行修改进程时间的间隔,也就是目标进程运行的时间长度,所述当前运行时间的单位可以为秒。
73.在实际应用中,当前运行时间可以直接从目标进程读取,也可以通过读取目标进程的当前时间,将所述当前时间减去所述目标进程的逻辑启动时间即可得到所述当前运行时间,后续可利用该计算关系基于用户输入的第一目标逻辑时间反推计算得出修改目标进程时间后对应的逻辑启动时间。
74.具体地,将所述第一目标逻辑时间减去所述当前运行时间即可得到目标逻辑启动时间,将逻辑启动时间修改为目标逻辑启动时间并转换为日期格式后写入目标时间文本中,后续该目标进程若再次启动,将按照修改后的逻辑启动时间运行,免除用户需要重复测
试同一功能任务时再次修改第一目标逻辑时间的操作。
75.可以理解,上述修改逻辑启动时间的步骤过程,并不需要重启目标进程。通过将所述目标进程的逻辑启动时间修改为所述目标逻辑启动时间,可以达到修改目标进程读取的逻辑启动时间的目的,即实现在不重启进程的情况下修改进程时间,节省进程时间修改所耗费的时间,提高效率。
76.可以理解,通过在不重启进程的情况下修改进程时间,可以满足在同一台机器上通过设置不同的进程时间测试不同功能的需求,即在不同的进程上分别测试不同的功能,各个进程对应各自的进程时间,且各个进程时间之间互不影响,能够节省机器运维成本和确认研发过程中问题的工作成本,提升开发测试的工作效率。
77.s230:第一确定步骤,根据修改后的逻辑启动时间确定所述目标进程对应的当前时间偏移量并存储。
78.在所述第一确定步骤s230中,所述当前时间偏移量用于表示所述目标进程的逻辑时间与宿主机的真实时间之间的时间差,如果所述当前时间偏移量为正数则表示所述目标进程的逻辑时间是一个未来的时间,如果所述当前时间偏移量为负数则表示所述目标进程的逻辑时间是一个过去的时间。其中,执行所述目标进程的硬件机器(如服务器)称为宿主机。
79.可选地,所述第一确定步骤s230可以包括:
80.获取所述目标进程的修改前的逻辑启动时间;
81.根据所述修改前的逻辑启动时间和所述修改后的逻辑启动时间确定新增时间偏移量;
82.获取所述目标进程对应的历史时间偏移量;
83.根据所述历史时间偏移量和所述新增时间偏移量确定所述目标进程对应的当前时间偏移量并存储。
84.具体地,可以从所述目标时间文本中获取所述修改前的逻辑启动时间,将所述修改后的逻辑启动时间减去所述修改前的逻辑启动时间,即可得到所述新增时间偏移量。可选地,可以在所述第一修改步骤s220之前,预先读取所述目标时间文本中的逻辑启动时间,存储为修改前的逻辑启动时间。修改后的逻辑启动时间则是s220第一修改步骤执行完成后,修改更新后的逻辑启动时间,即根据时间修改指令计算得到的目标逻辑启动时间。
85.具体地,可以从预设的时间偏移量文本中读取所述目标进程对应的历史时间偏移量,将所述历史时间偏移量和所述新增时间偏移量相加,构建新的时间偏移量作为所述当前时间偏移量,并存储至所述时间偏移量文本中。
86.在一个可选的实施例中,如果再次接收到时间修改指令,则可以返回所述接收步骤s210。也即是说,在目标进程运行过程中,所述步骤s210至所述步骤s230可以重复执行多次,即可以多次在不重启进程的情况下修改进程时间。
87.在一个可选的实施例中,如果所述目标进程停止,下次启动时可以依赖所述时间偏移量文本的内容(即所述当前时间偏移量)构建所述目标时间文本的内容,从而控制目标进程的逻辑启动时间,使得停服后,下次再起服,目标进程的逻辑时间能够自然衔接上次设定的逻辑时间。
88.在一个可选的实施例中,在所述第一修改步骤s220之后,所述方法还可以包括:
89.重置步骤,当所述目标进程中包括定时器任务时,重置所述目标进程对应的所有定时器任务。
90.具体地,如果所述目标进程使用了定时器(timer)模块来执行某段定时或延时任务逻辑,那么在所述目标进程运行过程中修改进程时间时,可以执行定时器重置操作,将已注册的所有定时器任务重置,保证所有的定时器任务能够正常执行,从而保证所述目标进程的正常运行。
91.可选地,可以采用erlang平台对软件产品(如游戏)等项目进行开发,对于利用erlang平台开发的项目,本发明实施例中的目标进程可以为erlang项目的微进程,所述微进程可以使用timer模块来执行某段定时或延时任务逻辑。在所述微进程运行过程中修改进程时间时,将已注册的所有定时器任务重置,可以避免在微进程采用默认开启时间修正功能的情况下,调整单调时钟的频率而频繁触发定时器任务,从而拉满系统cpu负载和内存消耗导致的微进程崩溃的问题,保证微进程正常运行。
92.需要说明的是,上述采用erlang平台进行项目开发,所述目标进程为erlang项目的微进程的方案仅为示例,不能构成对本发明实施例的限制。在一些可选实施例中,所述目标进程也可以为采用其他编程语言开发的包括定时器任务的进程,本发明实施例对此不做具体限定。
93.s240:判断步骤,判断所述目标进程是否重启。
94.在所述判断步骤s240中,可以实时判断所述目标进程是否重启,当所述目标进程重启时,触发后续步骤。目标进程的重启判断,可以根据宿主机操作系统中的进程启动状态标识位来判断,也可直接读取任务管理器中的进程列表来判断目标进程是否重启,如进程列表中该目标进程消失了,过了一段时间又出现,则表明发生了重启。
95.s250:第一获取步骤,在所述目标进程重启时,获取当前真实时间。
96.在所述第一获取步骤s250中,当所述目标进程重启时,可以读取执行所述目标进程的宿主机的真实时间,作为所述当前真实时间。
97.s260:第二确定步骤,根据所述当前时间偏移量和所述当前真实时间确定所述目标进程的逻辑重启时间并存储。
98.在所述第二确定步骤s260中,为了达到目标进程重启后的逻辑时间能够自然衔接上次设定的逻辑时间的效果,可以使得所述逻辑重启时间与所述当前真实时间的时间差,与所述目标进程停止时对应的当前时间偏移量保证一致。
99.可选地,所述第二确定步骤s260可以包括:将所述当前真实时间增加所述当前时间偏移量后,作为所述目标进程的逻辑重启时间。
100.具体地,在得到所述逻辑重启时间后,可以将其转换为日期格式,然后存入所述目标时间文本中作为前述步骤s220中的逻辑启动时间,所述目标进程可以读取所述目标时间文本中的逻辑重启时间启动。即本步骤和前述步骤s220一样都可以对目标时间文本中存储的逻辑启动时间进行修改,实现目标进程再次启动时逻辑时间的修改,区别在于本步骤的逻辑重启时间触发条件及计算方式不同。通过确定所述目标进程的逻辑重启时间,可以使得所述目标进程的逻辑时间能够自然衔接之前修改过的逻辑时间,不受目标进程重启过程的影响导致逻辑时间运行的断层。
101.下面通过一个具体的实施例进行详细描述。
102.假设在游戏服务器开发测试过程中,目标游戏进程运行过程中接收到时间修改指令,那么:
103.第一步,先从预设的目标时间文本(可以记为my-faketime.rc)中获取所述目标游戏进程的逻辑启动时间,即得到修改前的逻辑启动时间,将所述修改前的逻辑启动时间转换为对应的时间戳(可以记为starts)。假设修改前的逻辑启动时间为@2021-12-22 09:52:02(utc时间),则startts为对应的时间戳640166722。
104.第二步,基于所述时间修改指令确定对应的第一目标逻辑时间,将所述第一目标逻辑时间转换为对应的时间戳(可以记为tarts)。假设所述第一目标逻辑时间为@2021-12-23 12:00:00(北京时间),也就是@2021-12-23 04:00:00(utc时间),则tarts为对应的时间戳1640232000。
105.第三步,读取所述目标游戏进程的当前时间对应的时间戳,假设为1640167413,将所述当前时间对应的时间戳减去所述修改前的逻辑启动时间对应的时间戳starts,即可得到所述目标游戏进程的当前运行时间(可以记为passts),即计算passts=当前时间对应的时间戳

startts,得到passts=691。可选地,当前运行时间passts也可直接从目标游戏进程中读取得到。
106.第四步,将所述第一目标逻辑时间对应的时间戳tarts减去所述当前运行时间passts,即可得到所述目标游戏进程的目标逻辑启动时间对应的时间戳(可以记为setts),即计算setts=tarts

passts,得到setts=1640231309。
107.第五步,将所述目标游戏进程的逻辑启动时间修改为所述目标逻辑启动时间,即将所述目标逻辑启动时间对应的时间戳转换为日期格式,并写入所述目标时间文本中,即将setts转换为日期格式,可以得到目标逻辑启动时间为@2021-12-23 03:48:29(utc时间),并写入my-faketime.rc中,覆盖掉之前存储的逻辑启动时间@2021-12-22 09:52:02(utc时间),这样就可以使所述目标游戏进程启动时读取的逻辑启动时间变成其期望的时间点。
108.可以理解,通过在不重启进程的情况下修改时间,能够方便用户在开发测试环境中观察线上逻辑流程的正确性,缩短开发测试周期,提高开发测试效率。
109.下面可以确定所述目标游戏进程对应的当前时间偏移量,即:
110.第六步,假设在本次修改时间之前没有修改过时间,那么所述目标游戏进程对应的历史时间偏移量(可以记为oldadjust)为0。
111.第七步,将所述修改后的逻辑启动时间对应的时间戳减去所述修改前的逻辑启动时间对应的时间戳,得到新增时间偏移量(可以记为addadjust),即计算addadjust=setts-starts=64587。
112.第八步,将所述历史时间偏移量和所述新增时间偏移量相加,得到所述目标游戏进程对应的当前时间偏移量(可以记为fake_time_adjust)并存储,即计算fake_time_adjust=oldadjust+addadjust=64587,可以将所述当前时间偏移量写入时间偏移量文本(可以记为fake_time_adjust.txt)中,最终fake_time_adjust.txt文本中的内容变为fake_time_adjust=64587。
113.此时,再读取所述目标游戏进程的当前时间可以得到当前时间为@2021-12-23 04:00:26,可见不重启进程时间修改成功。
114.若所述目标游戏进程重启,则获取当前真实时间,将所述当前真实时间增加所述当前时间偏移量fake_time_adjust后,作为所述目标游戏进程的逻辑重启时间,将所述写入my-faketime.rc中,所述目标游戏进程可以读取my-faketime.rc中的逻辑重启时间启动,即可使得所述目标游戏进程的读取时间与重启之间的时间自然衔接。需要说明的是,本步骤中my-faketime.rc中存储的逻辑重启时间和前述第五步中my-faketime.rc中存储的目标逻辑启动时间本质上是同一个变量,即目标游戏进程的逻辑启动时间,只是因计算方式的触发不同而命名为不同的变量名称以便区分。
115.可以理解,通过对进程对应的当前时间偏移量进行修正,后续进程重启时基于所述当前时间偏移量确定对应的逻辑重启时间,可以使得进程重启时能延续之前修改过的时间启动测试环境,避免出现修改过一次时间之后,停止进程重启,之前的修改时间操作消失,导致出现数据紊乱的问题,能够让用户更直观、方便地理解时间,从而降低测试任务的复杂程度,降低开发测试成本。
116.在一个可选的实施例中,结合参考说明书附图4,所述方法还可以包括以下步骤:
117.s270:第二获取步骤,在所述目标进程重启时,获取第二目标逻辑时间。
118.在所述第二获取步骤s270中,所述第二目标逻辑时间可以为用户输入的待修改至的逻辑时间。具体地,当所述目标进程重启时,可以获取用户通过用户界面输入的第二目标逻辑时间。
119.s280:第二修改步骤,如果获取到第二目标逻辑时间,则根据所述第二目标逻辑时间和所述当前真实时间对所述当前时间偏移量进行修改。
120.在所述第二修改步骤s280中,如果未获取到第二目标逻辑时间,表示默认沿用之前的时间环境,此时可以执行上述第二确定步骤s260;如果获取到第二目标逻辑时间,表示抛弃之前的时间环境,重新设置进程的逻辑时间。
121.具体地,当获取到第二目标逻辑时间时,可以计算所述第二目标逻辑时间和所述当前真实时间的时间差,将所述当前时间偏移量修改为所述时间差。
122.相应地,所述第二确定步骤s260具体为:
123.s260’:根据修改后的当前时间偏移量和所述当前真实时间确定所述目标进程的逻辑重启时间并存储。
124.在所述第二确定步骤s260’中,可以将所述当前真实时间增加所述修改后的当前时间偏移量后,作为所述目标进程的逻辑重启时间。
125.具体地,在得到所述逻辑重启时间后,也可以将其转换为日期格式,然后存入所述目标时间文本中,所述目标进程可以读取所述目标时间文本中的逻辑重启时间启动。
126.可以理解,通过在进程重启时修改进程时间,可以对进程运行环境进行初始化,在初始化的过程中可以修改策划的配置,以满足特定的功能需求。
127.综上所述,根据本发明实施例的应用于服务器进程的时间修改方法,通过在目标进程运行过程中,基于时间修改指令对目标进程的逻辑时间进行修改,并对目标进程对应的当前时间偏移量进行修正,在目标进程重启时,可以基于所述当前时间偏移量确定目标进程的逻辑重启时间,使得所述目标进程可以读取所述逻辑重启时间启动,保证所述目标进程重启后仍能延续前期时间修改状态,从而确保进程的时间延续性。
128.参考说明书附图5,其示出了本发明一个实施例提供的一种应用于服务器进程的
时间修改系统500的结构。图2所示的应用于服务器进程的时间修改方法的流程可以在图5所示的系统中实现,图5所示的系统中的各个模块可以集成在计算机设备中。具体的如图5所示,所述系统500可以包括:
129.接收模块510,用于在目标进程运行过程中,接收时间修改指令;
130.第一修改模块520,用于基于所述时间修改指令对所述目标进程的逻辑启动时间进行修改;
131.第一确定模块530,用于根据修改后的逻辑启动时间确定所述目标进程对应的当前时间偏移量并存储;
132.判断模块540,用于判断所述目标进程是否重启;
133.第一获取模块550,用于在所述目标进程重启时,获取当前真实时间;
134.第二确定模块560,用于根据所述当前时间偏移量和所述当前真实时间确定所述目标进程的逻辑重启时间并存储。
135.在一个可选的实施例中,参考说明书附图6,所述系统500还可以包括:
136.第二获取模块570,用于在所述目标进程重启时,获取第二目标逻辑时间;
137.第二修改模块580,用于在获取到第二目标逻辑时间时,根据所述第二目标逻辑时间和所述当前真实时间对所述当前时间偏移量进行修改;
138.相应地,所述第二确定模块560还可以用于根据修改后的当前时间偏移量和所述当前真实时间确定所述目标进程的逻辑重启时间并存储。
139.在一个可选的实施例中,所述系统500还可以包括:
140.重置模块,用于当所述目标进程中包括定时器任务时,重置所述目标进程对应的所有定时器任务。
141.需要说明的是,上述实施例提供的系统,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的系统与相应方法实施例属于同一构思,其具体实现过程详见对应方法实施例,这里不再赘述。
142.本发明一个实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质可设置于计算机设备之中以保存用于实现一种应用于服务器进程的时间修改方法相关的计算机程序/指令,该计算机程序/指令被处理器执行时实现如上述各种可选实施例所提供的应用于服务器进程的时间修改方法的步骤。
143.可选地,在本发明实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
144.本发明一个实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序/指令,该计算机程序/指令被处理器加载并执行时实现如上述各种可选实施例所提供的应用于服务器进程的时间修改方法的步骤。
145.需要说明的是:上述本发明实施例先后顺序仅仅为了描述,不代表实施例的优劣。且上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且
仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
146.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
147.本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
148.以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1