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

一种基于优先级排序实现多个事件的线性倒计时的控制方法及装置

文献发布时间:2023-06-19 09:46:20


一种基于优先级排序实现多个事件的线性倒计时的控制方法及装置

技术领域

本发明属于计算机处理系统领域,特别涉及一种基于优先级排序实现多个事件的线性倒计时的控制方法及装置。

背景技术

字符串类型是redis中最基本的数据类型,他能存储任何形式的字符串,包括二进制数据。可以用来存储用户邮箱,JSON化的对象甚至是一张图片。一个字符串类型键允许存储的数据的最大容量是512M,String是像java arrayList采用的是预分配冗余空间的方式来减少内存的频繁分配,每次扩容接近翻一倍,String的最大值为512m。特点是可以支持批量操作,支持过期时间的设置,支持自增操作。

在智能终端的页面、后台进行事件的倒计时属于目前较为常见的实现方式,而在实际操作过程中,往往会涉及到多个事件的排序,通常按照事件的重要程度从高至低的进行倒计时,而当再次有事件插入到当前线程中时,往往需要对事件进行判断,判断是否应该最优先处理,而如何处理这些事件、如何计算剩余倒计时时间、如何确定总倒计时时间、如何确定其他事件剩余时间等等都是目前亟待解决的技术问题。

目前在现有的技术中,并没有这样一种基于优先级排序实现多个事件的线性倒计时的控制方法及装置。

发明内容

针对现有技术存在的技术缺陷,本发明的目的是提供一种基于优先级排序实现多个事件的线性倒计时的控制方法及装置,根据本发明的一个方面,提供了一种基于优先级排序实现多个事件的线性倒计时的控制方法,包括如下步骤:

a.在执行当前线程之前或同时或之后触发高于当前线程中最高级别事件的第二待排序事件;

b.将所述第二待排序事件插入当前线程并进行存储、更新。

优选地,在所述步骤a之前,还包括如下步骤:

i:将所有进行倒计时的多个事件按照排序ID的规则进行赋值;

ii:基于赋值结果将多个事件序列化后插入当前线程并存储;

iii:记录每个事件的倒计时时间、第一线程的倒计时时间总和以及第一记录更新时间。

优选地,所述排序ID的规则至少包括字符、定义类型的数值以及记录入库自增ID,其中,所述字符为字母,所述定义类型的数值为两位数的自然数,所述记录入库自增ID为三位数的自然数。

优选地,所述步骤a之前,还包括如下步骤:

a1:将第一待排序事件按照排序ID的规则进行赋值;

a2:基于排序ID的规则将高于当前线程中最高级别事件的第一待排序事件确定为第二待排序事件。

优选地,所述步骤b包括如下步骤:

b1:将当前时间确定为第二记录更新时间,将所述第一记录更新时间以及第二记录更新时间的时间差按照由高到低的顺序从当前线程中最高级别事件的倒计时时间开始抵扣,直至抵扣完毕;

b2:当最高级别事件的倒计时时间还剩余时,执行步骤b3,当最高级别事件的倒计时时间清零时,执行步骤b4;

b3:记录最高级别事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤b5;

b4:将一个或多个倒计时时间清零的事件删除,记录抵扣完毕后的事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤b5;

b5:记录每个事件的倒计时时间、第二线程的倒计时时间总和以及第二记录更新时间。

优选地,在所述步骤b中,将所述第二待排序事件插存储在redisstring中。

根据本发明的另一个方面,提供了一种基于优先级排序实现多个事件的线性倒计时的控制装置,包括:

第一处理装置:在执行当前线程之前或同时或之后触发高于当前线程中最高级别事件的第二待排序事件;

第二处理装置:将所述第二待排序事件插入当前线程并进行存储、更新。

优选地,还包括:

第三处理装置:将所有进行倒计时的多个事件按照排序ID的规则进行赋值;

第四处理装置:基于赋值结果将多个事件序列化后插入当前线程并存储;

第一记录装置:记录每个事件的倒计时时间、第一线程的倒计时时间总和以及第一记录更新时间。

优选地,所述第一处理装置还包括:

第五处理装置:将第一待排序事件按照排序ID的规则进行赋值;

第六处理装置:基于排序ID的规则将高于当前线程中最高级别事件的第一待排序事件确定为第二待排序事件。

优选地,第二处理装置包括:

第七处理装置:将当前时间确定为第二记录更新时间,将所述第一记录更新时间以及第二记录更新时间的时间差按照由高到低的顺序从当前线程中最高级别事件的倒计时时间开始抵扣,直至抵扣完毕;

第八处理装置:当最高级别事件的倒计时时间还剩余时,执行步骤b4,当最高级别事件的倒计时时间清零时,执行步骤b5;

第九处理装置:记录最高级别事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤b5;

第十处理装置:将一个或多个倒计时时间清零的事件删除,记录抵扣完毕后的事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤b5;

第二记录装置:记录每个事件的倒计时时间、第二线程的倒计时时间总和以及第二记录更新时间。

本发明公开了一种基于优先级排序实现多个事件的线性倒计时的控制方法,其在执行当前线程之前或同时或之后触发高于当前线程中最高级别事件的第二待排序事件,将所述第二待排序事件插入当前线程并进行存储、更新。本发明能够将优先级最高的事件插入到指定线程,并基于当前线程的时间及当前线程的开始时间进行更新,对当前线程的其他事件进行清算,进而实现对于最高级别事件的插入,本发明实现简单,功能强大,操作性强,能有效的实现事件的插入,具有较高的商业价值。

附图说明

通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1示出了本发明的具体实施方式的,一种基于优先级排序实现多个事件的线性倒计时的控制方法的具体流程示意图;

图2示出了本发明的第一实施例的,一种基于优先级排序实现多个事件的线性倒计时的控制方法的具体流程示意图;

图3示出了本发明的第二实施例的,在执行当前线程之前或同时或之后触发高于当前线程中最高级别事件的第二待排序事件的具体流程示意图;

图4示出了本发明的第三实施例的,将所述第二待排序事件插入当前线程并进行存储、更新的具体流程示意图;以及

图5示出了本发明的具体实施方式的,一种基于优先级排序实现多个事件的线性倒计时的控制装置的模块连接示意图。

具体实施方式

为了更好的使本发明的技术方案清晰的表示出来,下面结合附图对本发明作进一步说明。

本领域技术人员理解,针对现有技术的不足,本发明公开了基于优先级排序实现多个事件的线性倒计时的控制方法,可以将优先级最高的事件插入到指定线程,并基于当前线程的时间及当前线程的开始时间进行更新,对当前线程的其他事件进行清算,进而实现对于最高级别事件的插入。

图1示出了本发明的具体实施方式的,一种基于优先级排序实现多个事件的线性倒计时的控制方法的具体流程示意图,所谓优先级,即在多个事件存在于一个线程中时,基于每个事件的轻重缓急程度而做出的优先处理的划分规则,而在本发明中,优选地在区别每个事件的优先级后,基于优先级的先后顺序依次进行事件的倒计时处理,当每个事件倒计时完成后,开始处理下一个事件的倒计时,进一步地,本发明旨在公开一种能够在线程进行过程中的任意阶段插入需要被优先处理的事件的控制方法,具体地,提供了一种基于优先级排序实现多个事件的线性倒计时的控制方法,包括如下步骤:

首先,进入步骤S101,在执行当前线程之前或同时或之后触发高于当前线程中最高级别事件的第二待排序事件,在这样的实施例中,首先需要判断所述第二待排序事件的事件级别是否比所有当前线程事件的最高级别事件还要高,即仅当所述第二待排序事件的事件级别与当前线程中最高级别事件进行比较后,仍然处于需要优先处理之时,触发所述第二待排序事件。

进一步地,所述第二待排序事件可以在执行当前线程之前触发,即在一个优选地实施例中,在当前线程正准备开始执行之时,若存在所述第二待排序事件,则优先执行所述第二待排序事件,所述第二待排序事件可以在执行当前线程的同时触发,即在一个优选地实施例中,在当前线程正在执行的过程中,若存在所述第二待排序事件,则对正在执行的当前线程进行结算,并触发所述第二待排序事件,所述第二待排序事件可以在执行当前线程之后触发,即在一个极为特殊的实施例中,若当前线程执行完毕后,开启下一轮线程时,触发所述第二待排序事件,这些都不影响本发明的技术方案,而在本发明中,优选地对在当前线程正在执行的过程中触发所述第二待排序事件进行详细说明,在此不予赘述。

然后,进入步骤S102,将所述第二待排序事件插入当前线程并进行存储、更新,本领域技术人员理解,在将所述第二待排序事件插入到所述当前线程中时,需要对当前线程中所存在的事件进行结算,所述结算至少包括对当前插入时所消耗的时间进行抵扣,若抵扣完成事件时间消耗完毕,则进行删除,对下一个事件的时间进行抵扣,本发明中所述的当前线程优选地指代所述第二待排序事件未插入到线程中的原始线程,进一步地,进行存储、更新是指对第二待排序事件插入后进行事件时间、事件信息的存储,以及对当前状态下插入后时间的更新,而这些将在后述的具体实施例中做更近一步地描述。

图2示出了本发明的第一实施例的,一种基于优先级排序实现多个事件的线性倒计时的控制方法的具体流程示意图,在这样的实施例中,主要用于说明如何对第二待排序事件进行优先级判断,如何对当前线程中所有事件的优先级进行判断,如何有效的记录所有事件倒计时的开始时间、持续时间等等,故所述图2一方面是对图1中步骤的实施方式的具体完善,一方面也是在执行图1中步骤之前的准备步骤,具体地,在所述步骤S101之前,还包括如下步骤:

首先,进入步骤S201,将所有进行倒计时的多个事件按照排序ID的规则进行赋值,在这样的实施例中,在执行完图2后,执行图1,即本领域技术人员理解,在执行完步骤S203后,执行步骤S101,进一步地,所述所有进行倒计时的多个事件不包括所述第二待排序事件,其优选地指代在还未插入所述第二待排序事件时,所有需要进行倒计时的多个事件。

优选地,所述排序ID的规则至少包括字符、定义类型的数值以及记录入库自增ID,其中,所述字符为字母,所述定义类型的数值为两位数的自然数,所述记录入库自增ID为三位数的自然数。在这样的实施例中,所述字符优选地为A-Z的英文字母,例如M、S,而在其他的实施例中,还可以为一些特殊字符,例如@、!、*、/等等,所述定义类型的数值优选地为两位数的自然数,例如01、58、33等等,而这个数值优选地代指所述事件的重要、优先程度,例如,所述数值越高,则代表所述事件的优先级越高,例如,若存在01、02、03,则03代表优先级最高的事件数值,所述记录入库自增ID则代表所述事件按照入库先后顺序排序的编号,例如,事件1为101,事件2为102,事件3为103。

进一步地,结合上述分析,我们可以按照上述的排序ID的规则对多个事件进行赋值,所述赋值基于上述规则具有唯一性、包含优先级规则,例如,事件1为S01101,事件2为S02103,事件3为S02105,事件4为S03104,则我们首先按照事件的优先级规则进行排序,再按照入库的先后顺序进行排序,则可以得知事件4的优先级最高,而排在后面的依次是事件3、时间2、事件1。

然后,进入步骤S202,基于赋值结果将多个事件序列化后插入当前线程并存储,结合步骤S201中的实施例,将事件1、事件2、事件3以及事件4按照优先级的顺序排序后,插入到当前线程,将用户的事件信息存入数组,将数组序列化后使用redis存储,事件剩余时间以秒为单位,将redis的有效期设置为所有事件剩余时间总和,具体地,在一个优选地实施例中,所述事件1的倒计时时间为1小时,所述事件2的倒计时时间为6小时,所述事件3的倒计时时间为8小时,所述事件4的倒计时时间为6小时,则优选地对上述事件信息进行存储。

最后,进入步骤S203,记录每个事件的倒计时时间、第一线程的倒计时时间总和以及第一记录更新时间,结合步骤S201以及步骤S202中的实施例,所述事件1的倒计时时间为1小时,所述事件2的倒计时时间为6小时,所述事件3的倒计时时间为8小时,所述事件4的倒计时时间为6小时,对其进行记录,同时我们理解,所述事件1、事件2、事件3以及事件4即为所述第一线程,记录所述第一线程的倒计时时间总和为21小时,所述第一记录更新时间即为记录这些信息的时间,例如,记录上述所有事件并开始执行第一线程时的时间为8:00。

图3示出了本发明的第二实施例的,在执行当前线程之前或同时或之后触发高于当前线程中最高级别事件的第二待排序事件的具体流程示意图,在这样的实施例中,主要公开了第二待排序事件在插入当前线程之前,需要执行的步骤,具体地,在所述步骤S101之前,还包括如下步骤:

首先,进入步骤S1011,将第一待排序事件按照排序ID的规则进行赋值,本领域技术人员理解,所述步骤S1011以及步骤S1012也是在步骤S101之前执行,而步骤S201至步骤S203也是在步骤S101之前执行,进一步地,我们理解,所述步骤S1011以及步骤S1012应在执行完步骤S201至步骤S203之后再执行,即完成对于所有当前线程的优先级排序、记录、存储后,执行步骤S1011。

进一步地,所述第一待排序事件可以存在多个,当能够完成当前线程插入的必须是优先级高于当前线程中最高优先级的事件,故图3主要是对其第一待排序事件进行判断。具体地,在一个优选地实施例中,所述第一待排序事件按照图2中步骤进行排序ID的规则后,赋值为S04105。

最后,进入步骤S1012,基于排序ID的规则将高于当前线程中最高级别事件的第一待排序事件确定为第二待排序事件,在这样的实施例中,结合步骤S1011,若所述第一待排序事件为S04105,很显然,所述S04105的优先级将高于事件4的S03104,则确定所述第一待排序事件确定为第二待排序事件,而在其他的实施例中,若所述第一待排序事件为S02108、S01105,S03101,则无法通过审核,一旦所述第一待排序事件被确定为第二待排序事件,即说明需要执行步骤S101。

图4示出了本发明的第三实施例的,将所述第二待排序事件插入当前线程并进行存储、更新的具体流程示意图,本领域技术人员理解,所述图4是对步骤S102的详细描述,具体地,包括如下步骤:

首先,进入步骤S1021,将当前时间确定为第二记录更新时间,将所述第一记录更新时间以及第二记录更新时间的时间差按照由高到低的顺序从当前线程中最高级别事件的倒计时时间开始抵扣,直至抵扣完毕,在这样的实施例中,基于前述图1至图3中的具体实施方式以及具体实施例,即存在事件1为S01101,事件2为S02103,事件3为S02105,事件4为S03104,所述事件1的倒计时时间为1小时,所述事件2的倒计时时间为6小时,所述事件3的倒计时时间为8小时,所述事件4的倒计时时间为6小时,记录上述所有事件并开始执行第一线程时的时间为8:00,同时,所述第二待排序事件为S04105,当前时间确定为第二记录更新时间,进一步地,用户15:00时触发了级别更高的事件,即第二待排序事件,需要将所述第二待排序事件插入数组并排序,首先获得redis的内容与有效期,根据update_time得出已消耗7小时。

进一步地,在第一线程执行过程中,已消耗了7小时,而第一线程从事件4开始倒计时,则可以得出事件4消耗完毕,再继续消耗事件3的1小时,即将所述第一记录更新时间以及第二记录更新时间的时间差按照由高到低的顺序从当前线程中最高级别事件的倒计时时间开始抵扣,直至抵扣完毕,所述所述第一记录更新时间以及第二记录更新时间的时间差即为7小时。

然后,进入步骤S1022,当最高级别事件的倒计时时间还剩余时,执行步骤S1023,当最高级别事件的倒计时时间清零时,执行步骤S1024,所述步骤S1022为判断步骤,即将所述第一记录更新时间以及第二记录更新时间的时间差从最高界别时间开始抵扣,直至抵扣完毕,由于存在多个事件,且所述第一记录更新时间以及第二记录更新时间的时间差也存在不同,则可以将步骤S1022分开两种情况。

在当最高级别事件的倒计时时间还剩余时,执行步骤S1023,记录最高级别事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤S1025,在一个优选地实施例中,若最高级别事件的倒计时时间为10小时,而所述第一记录更新时间以及第二记录更新时间的时间差为3小时,则记录最高级别事件的剩余倒计时时间为7小时,同时将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程。

在当最高级别事件的倒计时时间清零时,执行步骤S1024,将一个或多个倒计时时间清零的事件删除,记录抵扣完毕后的事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤S1025,在这样的实施例中,结合步骤S1021中的实施例,所述第一记录更新时间以及第二记录更新时间的时间差为7小时,事件4的倒计时时间为6小时,则可以得出事件4消耗完毕,再继续消耗事件3的1小时,事件3的倒计时时间为8小时,此时,事件3还剩余倒计时时间7小时,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程。

最后,进入步骤S1025,记录每个事件的倒计时时间、第二线程的倒计时时间总和以及第二记录更新时间,结合步骤S1024,若所述第二待排序事件的倒计时时间为24小时,则记录每个事件的倒计时时间:所述第二待排序事件的倒计时时间为24小时、事件3的倒计时时间7小时、事件2的倒计时时间6小时,事件1的倒计时时间1小时,第二线程的倒计时时间总和为38小时,同时,记录第二记录更新时间为15:00。

图5示出了本发明的具体实施方式的,一种基于优先级排序实现多个事件的线性倒计时的控制装置的模块连接示意图,结合图1至图4,图5采用图1至图4中所述的控制方法,提供了一种基于优先级排序实现多个事件的线性倒计时的控制装置,包括第一处理装置1:在执行当前线程之前或同时或之后触发高于当前线程中最高级别事件的第二待排序事件,所述第一处理装置1的工作原理可以参考前述步骤S101,在此不予赘述。

进一步地,所述控制装置还包括第二处理装置2:将所述第二待排序事件插入当前线程并进行存储、更新,所述第二处理装置2的工作原理可以参考前述步骤S102,在此不予赘述。

进一步地,所述控制装置还包括第三处理装置3:将所有进行倒计时的多个事件按照排序ID的规则进行赋值,所述第三处理装置3的工作原理可以参考前述步骤S201,在此不予赘述。

进一步地,所述控制装置还包括第四处理装置4:基于赋值结果将多个事件序列化后插入当前线程并存储,所述第四处理装置4的工作原理可以参考前述步骤S202,在此不予赘述。

进一步地,所述控制装置还包括第一记录装置5:记录每个事件的倒计时时间、第一线程的倒计时时间总和以及第一记录更新时间,所述第一记录装置5的工作原理可以参考前述步骤S203,在此不予赘述。

进一步地,所述第一处理装置1还包括第五处理装置11:将第一待排序事件按照排序ID的规则进行赋值,所述第五处理装置11的工作原理可以参考前述步骤S1011,在此不予赘述。

进一步地,所述第一处理装置1还包括第六处理装置12:基于排序ID的规则将高于当前线程中最高级别事件的第一待排序事件确定为第二待排序事件,所述第六处理装置12的工作原理可以参考前述步骤S1012,在此不予赘述。

进一步地,第二处理装置2包括第七处理装置21:将当前时间确定为第二记录更新时间,将所述第一记录更新时间以及第二记录更新时间的时间差按照由高到低的顺序从当前线程中最高级别事件的倒计时时间开始抵扣,直至抵扣完毕,所述第七处理装置21的工作原理可以参考前述步骤S1021,在此不予赘述。

进一步地,第二处理装置2包括第八处理装置22:当最高级别事件的倒计时时间还剩余时,执行步骤S1025,当最高级别事件的倒计时时间清零时,执行步骤S1025,所述第八处理装置22的工作原理可以参考前述步骤S1022,在此不予赘述。

进一步地,第二处理装置2包括第九处理装置23:记录最高级别事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤S1025,所述第九处理装置23的工作原理可以参考前述步骤S1023,在此不予赘述。

进一步地,第二处理装置2包括第十处理装置24:将一个或多个倒计时时间清零的事件删除,记录抵扣完毕后的事件的剩余倒计时时间,并将所述第二待排序事件作为最高级别事件插入当前线程并确定为第二线程,并执行步骤S1025,所述第十处理装置24的工作原理可以参考前述步骤S1024,在此不予赘述。

进一步地,第二处理装置2包括第二记录装置25:记录每个事件的倒计时时间、第二线程的倒计时时间总和以及第二记录更新时间,所述第二记录装置25的工作原理可以参考前述步骤S1025,在此不予赘述。

以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变形或修改,这并不影响本发明的实质内容。

相关技术
  • 一种基于优先级排序实现多个事件的线性倒计时的控制方法及装置
  • 一种基于优先级的底事件排序方法
技术分类

06120112296579