掌桥专利:专业的专利平台
掌桥专利
首页

一种银行系统的日切方法及装置

文献发布时间:2023-06-19 12:13:22


一种银行系统的日切方法及装置

技术领域

本发明涉及金融技术领域,尤其涉及一种银行系统的日切方法及装置。

背景技术

本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

银行系统中的很多功能都依赖于银行系统的系统日期执行,例如在系统日期为2021年5月30日时生成某张报表。银行系统的各种功能在真正投入使用前(即应用在生产环境中),要先在测试环境中进行测试,确定每一功能是否都能正常执行,因为测试的时间有限,但是银行系统的系统日期在进行自动切换时(简称日切)只能按照连续的日期进行切换,因而测试环境中只能测试该功能在部分系统日期下的执行情况,但是每一功能对于不同系统日期的处理规则可能不同,因此测试环境无法对每一功能进行全面准确的测试,所以在测试环境中,需要设置不连续的日期,银行系统在日切时,由人工手动将系统日期切换到与当前的系统日期不连续的日期,进而保证覆盖更多的测试场景。存在系统日切方法不灵活、测试效率低的问题。

发明内容

本发明实施例提供一种银行系统的日切方法,用以解决现有技术中银行系统无法实现针对不连续日期的自动切换,为了保证测试环境中能包含更多日期对应的测试场景,需要设置不连续的日期,由人工进行手动切换,测试效率低的问题,该方法包括:

获取修改日期、银行系统的当前系统日期、以及当前自然日日期;其中,修改日期为银行系统日切时的自然日日期;

在修改日期与当前自然日日期不一致、且所述日切方法应用在测试环境时,根据当前自然日日期、以及预先建立的自然日日期与系统下日日期之间的关联关系,获取系统下日日期;

将当前系统日期修改为系统下日日期、以及将修改日期修改为当前自然日日期。

本发明实施例还提供一种银行系统的日切装置,用以解决现有技术中银行系统无法实现针对不连续日期的自动切换,为了保证测试环境中能包含更多日期对应的测试场景,需要设置不连续的日期,由人工进行手动切换,测试效率低的问题,该装置包括:

获取模块,用于获取修改日期、银行系统的当前系统日期、以及当前自然日日期;其中,修改日期为银行系统日切时的自然日日期;

第一处理模块,用于在修改日期与当前自然日日期不一致、且所述日切方法应用在测试环境时,根据当前自然日日期、以及预先建立的自然日日期与系统下日日期之间的关联关系,获取系统下日日期;

第二处理模块,用于将当前系统日期修改为系统下日日期、以及将修改日期修改为当前自然日日期。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述银行系统的日切方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述银行系统的日切方法的计算机程序。

本发明实施例中,根据修改日期与当前自然日日期是否一致从而避免重复日切,在修改日期与当前自然日日期不一致,且该日切方法应用在测试环境中时,根据预先建立的自然日日期与系统下日日期之间的关联关系可以获取系统下日日期,将当前系统日期修改为系统下日日期,实现在日期不连续的情况下银行系统也能自动日切,从而满足各种测试场景的要求,提高测试环境对测试场景的覆盖率、以及银行系统日切的灵活性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例中提供的一种银行系统的日切方法的流程图;

图2为本发明实施例中提供的一种系统运行表的示例图;

图3为本发明实施例中提供的一种预先建立的自然日日期与当前系统日期、系统下日日期之间的关联关系的示例图;

图4为本发明实施例中提供的一种银行系统的日切装置的示意图;

图5为本发明实施例中提供的一种计算机设备的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。

在本说明书的描述中,所使用的“包含”、“包括”、“具有”、“含有”等,均为开放性的用语,即意指包含但不限于。参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”等的描述意指结合该实施例或示例描述的具体特征、结构或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本申请的实施,其中的步骤顺序不作限定,可根据需要作适当调整。

经研究发现,银行系统的系统日期在进行自动切换时(简称日切)只能按照连续的日期进行切换,但是同一功能在不同的系统日期下对应于不同的处理规则(例如某一功能为在每月29日生成业务报表,但是因为平年的二月份没有29日,所以平年的二月份在28日生成业务报表,因此在系统日期为2021年2月28日时,需要生成业务报表),测试时需要在测试环境下包含待测试功能各种不同的处理规则,也即得包括各种不同处理规则对应的系统日期,因此当测试时间有限、银行系统只能按照连续的日期日切,会导致测试环境中无法覆盖待测试功能各种不同处理规则对应的系统日期,例如待测试功能需要测试的系统日期以及日期切换顺序为:2020年2月29日、2021年2月28日,银行系统从2020年2月29日自动日切后,会直接将系统日期切换为2020年3月1日,无法直接切换到2021年2月28日,与预期不符。因而,为了覆盖更多的测试场景(即各种不同处理规则对应的系统日期),需要人工手动在银行系统日切时将系统日期切换为不连续的预设日期。综上所述,现有的银行系统日切方法不够灵活,导致当前对各种依赖系统日期执行的功能的测试效率低。

针对上述研究,发明人提出一种银行系统的日切方法。如图1所示,所述日切方法,包括:

S101:获取修改日期、银行系统的当前系统日期、以及当前自然日日期;其中,修改日期为银行系统日切时的自然日日期;

S102:在修改日期与当前自然日日期不一致、且所述日切方法应用在测试环境时,根据当前自然日日期、以及预先建立的自然日日期与系统下日日期之间的关联关系,获取系统下日日期;

S103:将当前系统日期修改为系统下日日期、以及将修改日期修改为当前自然日日期。

本发明实施例通过根据修改日期与当前自然日日期是否一致从而避免重复日切;在修改日期与当前自然日日期不一致,且该日切方法应用在测试环境中时,根据预先建立的自然日日期与系统下日日期之间的关联关系可以获取系统下日日期,将当前系统日期修改为系统下日日期,实现在日期不连续的情况下银行系统也能自动日切,从而满足各种测试场景的要求,提高测试环境对测试场景的覆盖率、以及银行系统的日切的灵活性。

下面对上述本发明实施例提供的日切方法加以详细说明。

本发明实施例所述的银行系统例如包括:银行外围系统、银行核心业务系统等。

本发明实施例所述的日切方法的日切过程例如可以根据图2所示的系统运行表进行切换,系统运行表例如包括:当前系统日期、系统下日日期、系统上日日期、修改日期;其中,NOW_SYS_DATE表示当前系统日期、PRE_SYS_DATE表示系统上日日期、NXT_SYS_DATE表示系统下日日期、MODIRY_TIME表示修改日期。银行系统在进行日切时,将系统上日日期修改为当前系统日期,将当前系统日期修改为系统下日日期,将修改日期修改为当前自然日日期,然后根据日切方法的执行环境(例如测试环境或者生产环境)确定系统下日日期,示例性的,银行系统的系统上日日期为2020年12月1日,当前系统日期为2020年12月2日,系统下日日期为2020年12月3日,修改日期为2020年12月2日,当前自然日日期为2020年12月3日,在日切时,将系统上日日期修改为2020年12月2日,将当前系统日期修改为2020年12月3日,将修改日期修改为修改为2020年12月3日,根据日切方法的执行环境确定新的系统下日日期。

此处,修改日期是为了避免银行系统在日切时重复执行日切动作设置的,修改日期与当前自然日日期一致代表银行系统已经执行日切动作,修改日期与当前自然日日期不一致代表银行系统还未执行日切动作。

针对上述S101,在获取修改日期、银行系统的当前系统日期、以及当前自然日日期时,例如可以根据定时任务,获取修改日期、当前系统日期、以及当前自然日日期;其中,定时任务例如为在预设的时间点动查询程序,通过该查询程序获取修改日期、银行系统日期、以及当前自然日日期;示例性的,设置自然日的每日0时0分0秒获取修改日期、银行系统的当前系统日期、以及当前自然日日期。

另外,因为银行系统可能出现在预设时间没有执行日切动作或者执行日切动作不成功的情况,所以例如可以在到达预设时刻后,每间隔预设时长,确定修改日期与当前自然日日期是否一致;

(1)在修改日期与当前日期一致的情况下,代表该预设时间对应的日切动作已经执行,停止日切,并停止每间隔预设时长确定修改日期与当前自然日日期是否一致。

(2)在修改日期与当前日期不一致的情况下,代表该预设时间对应的日切动作还未执行,继续执行日切操作,并且继续每间隔预设时长确定修改日期与当前自然日日期是否一致。

这样,通过定时循环任务可以确保在预设时间能成功的执行日切动作,提高银行系统日切的成功率。

在确定修改日期与当前自然日日期不一致的情况下,继续执行日切操作:确定该日切方法的执行环境。

其中,确定该日切方法的执行环境例如可以读取系统配置文件中的开关的取值,在开关的取值为第一预设值时,确定所述日切方法应用在测试环境;此处,开关代表当前执行环境为测试环境或生产环境;在开关的值为第二预设值时,确定所述日切方法应用在生产环境。其中,第一预设值、第二预设值例如包括:字符、数字、字符串、数字和字符的组合等,具体可以根据实际的应用情况设定,这里不做限定。

在将本发明实施例所述的日切方法应用在测试环境中时,针对S101在获取当前系统日期时,例如可以采用但不限于下述A、B任一种方式:

A:根据当前自然日日期、以及预先建立的自然日日期与当前系统日期之间的关联关系,获取当前系统日期;示例性的,如图3所示,为本发明实施例提供的一种预先建立的自然日日期与当前系统日期、系统下日日期之间的关联关系的示例图,其中,NATURAL_DAY表示自然日日期、NOW_SYS_DATE表示当前系统日期、NXT_SYS_DATE表示系统下日日期,自然日日期为2020年2月14日(2020/2/14)时,当前系统日期为2025年2月1日(2025/2/1),系统下日日期为2025年2月2日(2025/2/2);自然日日期为2020年2月15日时(2020/2/15),当前系统日期为2025年2月2日(2025/2/2),系统下日日期为2025年2月2日(2025/2/2);自然日日期为2020年2月16日(2020/2/16)时,当前系统日期为2025年2月2日(2025/2/2),系统下日日期为2025年2月3日(2025/2/3);自然日日期为2020年2月17日时(2020/2/17),当前系统日期为2025年2月2日(2025/2/2),系统下日日期为2025年2月10日(2025/2/10);自然日日期为2020年2月18日时(2020/2/18),当前系统日期为2025年2月3日(2025/2/3),系统下日日期为2025年2月20日(2025/2/20)。具体的,根据当前自然日日日期,获取与当前自然日日期一致的自然日日期对应的当前系统日期,如当前自然日日期为2020年2月14日,则获取的当前系统日期就为2025年2月1日。

此处,自然日日期与当前系统日期、系统下日日期之间的关联关系是测试人员根据测试场景的需求设置的,不同的测试场景可以设置不同的自然日日期与当前系统日期、系统下日日期之间的关联关系,图3只是给出一种具体示例。

B:根据系统运行表获取当前系统日期。

针对上述S102~S103,为将本发明实施例所述的银行系统的日切方法应用在测试环境中的情况;针对上述S102,在获取当前系统日期后,根据当前自然日日期、以及预先建立的自然日日期与系统下日日期之间的关联关系,获取系统下日日期;示例性的,如图3所示,根据当前自然日日日期,获取与当前自然日日期一致的自然日日期对应的系统下日日期,如当前自然日日期为2020年2月14日,则获取的系统下日日期就为2025年2月2日。

这样,根据预先建立的自然日日期与系统下日日期之间的关联关系确定系统下日日期,确定的系统下日日期可以是与当前系统日期不连续的日期,如图3中在当前自然日日期为2020年2月17日时,则确定的当前系统日期为2025年2月2日,系统下日日期为2025年2月10日,与现有技术中银行系统只能自动将系统下日日期确定为与当前系统日期连续的日期相比,更加灵活。

针对上述S103,在根据预先建立的自然日日期与系统下日日期之间的关联关系确定系统下日日期之后,将当前系统日期修改为系统下日日期,实现即使在当前系统日期与系统下日日期不连续的情况下,银行系统也能自动日切,且在将当前日期修改为系统下日日期之后,将修改日期修改为当前自然日日期,表示当前日切动作执行成功。

这样,测试人员可以根据实际的测试需求建立自然日日期与系统下日日期之间的关联关系,从而实现对更多系统日期对应的测试场景的覆盖。

本发明另一实施例中,在将本发明实施例所述的日切方法应用在生产环境中时,针对S101,在获取当前系统日期时根据系统运行表获取当前系统日期。在获取当前系统日期之后,确定当前自然日日期为系统下日日期,然后将当前系统日期修改为系统下日日期,也即将当前系统日期修改为当前自然日日期,并将修改日期修改为当前自然日日期,表示日切动作执行成功。

这样,通过读取系统配置文件中的开关的取值确定日切方法的执行环境,进而针对不同的执行环境执行不同的确定系统下日日期的方法,也即本发明实施例提供的日切方法能够根据不同的执行环境进行不同策略的日切动作,在测试环境下,针对不连续的日期实现自动切换,在生产环境下根据自然日日期的变换顺序日切,应用灵活,适用的范围广泛。

本发明另一实施例中,当银行系统为分布式系统时,日切方法由分布式系统中获得分布式锁的一节点执行;此处,分布式系统例如包括:多个配置相同、能提供相同服务的节点,银行系统在日切时,只要保证日切动作成功执行一次即可,如果分布式系统中的多个节点同时都执行志行日切动作,会导致日切结果错误,因此在日切时,只给一个节点加分布式锁,获得分布式锁的节点执行日切动作:将系统上日日期修改为当前系统日期,将当前系统日期修改为系统下日日期;以此保证日切动作在同一时间执行一次。其中,当前系统日期存储在数据库中,由分布式系统中的每一节点共享。

此处的分布式锁例如包括下述(a)~(c)任一种:

(a)基于数据库的分布式锁;例如包括悲观锁、乐观锁。

(b)基于缓存的分布式锁,例如包括:基于Redis的分布式锁、基于Memcached的分布式锁、基于Tair的分布式锁。

(c)基于Zookeeper的分布式锁。

示例性的,创建一个目录mylock;银行系统包含多个配置相同、能提供相同服务的节点,例如节点a、节点b、节点c等;如果节点a想获取锁,就在mylock目录下创建节点a对应的临时顺序节点1;节点a获取mylock目录下所有的临时顺序节点,然后获取顺序号比临时顺序节点1的顺序号小的临时顺序节点,如果不存在,则说明临时顺序节点1的顺序号最小,获得锁;如果存在比临时节点1的顺序号次小的临时顺序节点(例如节点b对应的临时顺序节点2),监听临时顺序节点2;在节点b处理完并删除对应的临时顺序节点2后,节点a监听到这一变更事件,继续判断临时顺序节点1的顺序号是不是最小,如果是则获得锁。

这样,银行系统在日切时,只给一个节点分配分布式锁,获取分布式锁的节点执行本发明实施例所述的日切方法,进而保证银行系统在预设的时间点只执行一次日切动作,保证日切操作的准确性,提高了日切方法的普适性。

本发明实施例中还提供了一种银行系统的日切装置,如下面的实施例所述。由于该装置解决问题的原理与银行系统的日切方法相似,因此该装置的实施可以参见银行系统的日切方法的实施,重复之处不再赘述。

如图4所示,为本发明实施例提供的一种银行系统的日切装置的示意图,包括:获取模块401、第一处理模块402、以及第二处理模块403;其中,

获取模块401,用于获取修改日期、银行系统的当前系统日期、以及当前自然日日期;其中,修改日期为银行系统日切时的自然日日期;

第一处理模402,用于在修改日期与当前自然日日期不一致、且所述日切方法应用在测试环境时,根据当前自然日日期、以及预先建立的自然日日期与系统下日日期之间的关联关系,获取系统下日日期;

第二处理模块403,用于将当前系统日期修改为系统下日日期、以及将修改日期修改为当前自然日日期。

在一种可能的实施方式中,所述获取模块,具体用于根据定时任务,获取修改日期、当前系统日期、以及当前自然日日期。

在一种可能的实施方式中,所述获取模块,具体用于根据当前自然日日期、以及预先建立的自然日日期与当前系统日期之间的关联关系,获取当前系统日期。

在一种可能的实施方式中,还包括:第三处理模块,用于读取系统配置文件中的开关的取值,在开关的取值为第一预设值时,确定所述日切方法应用在测试环境,所述开关代表当前执行环境为测试环境或生产环境;在开关的值为第二预设值时,确定所述日切方法应用在生产环境。

在一种可能的实施方式中,所述第二处理模块,还用于在修改日期与当前自然日日期不一致、且所述日切方法应用在生产环境时,将当前系统日期修改成当前自然日日期,并将修改日期修改为当前自然日日期。

在一种可能的实施方式中,所述银行系统为分布式系统,所述日切装置为分布式系统中获得分布式锁的一节点。

在一种可能的实施方式中,所述第二处理模块,还用于在到达预设时刻后,每间隔预设时长,确定修改日期与当前自然日日期是否一致;在修改日期与当前自然日日期一致时,停止日切,并停止确定修改日期与当前日期是否一致;在修改日期与当前自然日日期不一致时,继续每间隔预设时长确定修改日期与当前自然日日期是否一致。

基于前述发明构思,如图5所示,本发明还提出了一种计算机设备500,包括存储器510、处理器520及存储在存储器510上并可在处理器520上运行的计算机程序530,所述处理器520执行所述计算机程序530时实现前述银行系统的日切方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述银行系统的日切方法的计算机程序。

本发明实施例中银行系统的日切方法、装置、计算机设备以及存储介质,与现有技术中银行系统无法实现针对不连续日期的自动切换,为了保证测试环境中能包含更多日期对应的测试场景,需要设置不连续的日期,由人工进行手动切换相比,在修改日期与当前自然日日期不一致、且该日切方法应用在测试环境中时,根据预先建立的自然日日期与系统下日日期之间的关联关系可以获取系统下日日期,将当前系统日期修改为系统下日日期,实现在日期不连续的情况下银行系统也能自动日切,从而满足各种测试场景的要求,提高测试环境对测试场景的覆盖率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种银行系统的日切方法及装置
  • 一种摄像机的日切夜和夜切日模式控制方法及系统
技术分类

06120113212781