System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 多源定时任务的管理方法、通用模块、客户端及服务器技术_技高网

多源定时任务的管理方法、通用模块、客户端及服务器技术

技术编号:41155128 阅读:4 留言:0更新日期:2024-04-30 18:19
本申请涉及互联网技术领域,提供了多源定时任务的管理方法、通用模块、客户端及服务器。该方法包括:获取多个同源或不同源的外部注册对象的有效启用定时任务;读取永久存储介质中的上次调用时间矫正器的第一剩余时间变量和距离上次执行Tick函数的Tick时间差值;若第一剩余时间变量与Tick时间差值的叠加值大于或等于1秒,且根据当前绝对时间戳和有效启用定时任务的下次到期绝对时间戳确定到达有效启用定时任务的预设定时时间点,则调用一次与有效启用定时任务对应的回调函数,或向外部注册对象发送到时广播通知。本申请对系统性能的耗费较小,判断次数较少,判断时间的准确性较高,同时计算量小且算法简单。

【技术实现步骤摘要】

本申请涉及互联网,尤其涉及一种多源定时任务的管理方法、通用模块、客户端及服务器


技术介绍

1、造车厂商为了提升其知名度,扩大其市场影响力,需要对自己的产品进行推广,所以在车辆应用的开发和运营中,为了激励用户,提高用户留存率,系统会对用户定期发送礼包或奖励或通知;或者到期后,将过往礼包或奖励清除。

2、为实现上述的定期礼包/奖励/通知的发送/清除功能,现有的解决方案通常是利用系统提供的日历功能或时间功能,获取当前时间,并开启一个或多个定时器,每隔多少时间后对当前时间进行判断,以确定是否满足设定的定时规则,之后再执行相应的业务逻辑,以实现相应的功能。然而,上述方案在日期的判断逻辑存在如下两个缺点:一是,需要开启一个或多个定时器,存在耗费性能的问题;二是,存在判断次数过于频繁,或者判断时间不准确的问题。此外,现有的不使用定时器的实现方案,在日期的判断逻辑上仍存在计算量较大,算法稍显复杂的问题。

3、对于一个大型系统(例如,一个公司范围内的大系统,或者集团的大系统),使上述定期礼包/奖励/通知的发送/清除功能的子系统可能不在少数。由于这套功能的实现逻辑算法不算复杂,所以可能会有多份不同的具体实现方案。例如,子系统a要向用户发放奖励,需要应用规则1,所以写了自己的逻辑模块,放在子系统a中;子系统b要向用户发送推送广告和通知,需要应用规则2,所以写了自己的逻辑模块,放在子系统b中;子系统c要向用户发送礼包,需要应用规则3和规则4,所以写了自己的逻辑模块,放在子系统c中。由于各个不同的子系统制定的定时规则的实现逻辑零散分布在各个子系统,缺乏统一的管理,同时也存在如上述实现方案中定时器过多对性能耗费较大的问题。

4、可见,现有的定时任务管理方案仍存在需要使用一个或多个定时器,对系统性能的耗费较大,同时还存在判断次数过于频繁、判断时间不准确、计算量较大且算法较复杂的问题。


技术实现思路

1、有鉴于此,本申请实施例提供了一种多源定时任务的管理方法、通用模块、客户端及服务器,以解决现有的定时任务管理方案仍存在需要使用一个或多个定时器,对系统性能的耗费较大,同时还存在判断次数过于频繁、判断时间不准确、计算量较大且算法较复杂的问题。

2、本申请实施例的第一方面,提供了一种多源定时任务的管理方法,包括:

3、获取多个同源或不同源的外部注册对象对应的有效启用定时任务,并存储为一个定时任务管理列表;

4、调用预设的时间矫正器,读取永久存储介质中记录的上一次调用时间矫正器的第一剩余时间变量,以及距离上一次执行tick函数的tick时间差值;

5、若第一剩余时间变量与tick时间差值的叠加值大于或等于1秒,则获取当前绝对时间戳,并遍历定时任务管理列表,读取每一个有效启用定时任务的下次到期绝对时间戳;

6、针对每一个有效启用定时任务,若基于当前绝对时间戳和下次到期绝对时间戳,确定到达有效启用定时任务的预设定时时间点,则调用一次与有效启用定时任务对应的回调函数,或者向与有效启用定时任务对应的外部注册对象发送到时广播通知,以通知外部注册对象执行与有效启用定时任务对应的业务逻辑。

7、本申请实施例的第二方面,提供了另一种多源定时任务的管理方法,包括:

8、获取多个同源或不同源的外部注册对象对应的有效启用定时任务,并存储为一个定时任务管理列表;

9、获取当前绝对时间戳,并将当前绝对时间戳记录为开始时间;

10、针对每一个有效启用定时任务,读取其下次到期绝对时间戳,若基于当前绝对时间戳和下次到期绝对时间戳,确定到达有效启用定时任务的预设定时时间点,则调用一次与有效启用定时任务对应的回调函数,或者向与有效启用定时任务对应的外部注册对象发送到时广播通知,以通知外部注册对象执行与有效启用定时任务对应的业务逻辑;

11、在调用一次回调函数或发送到时广播通知后,记录最新当前时间戳,并将最新当前时间戳记录为结束时间;

12、若结束时间减去开始时间的时间差值大于或等于1秒,则不调用睡觉函数;

13、若结束时间减去开始时间的时间差值小于1秒,则调用睡觉函数,睡觉函数的参数传入时间差值。

14、本申请实施例的第三方面,提供了一种通用模块,包括:

15、获取单元,被配置为获取多个同源或不同源的外部注册对象对应的有效启用定时任务,并存储为一个定时任务管理列表;

16、调用单元,被配置为调用预设的时间矫正器,读取永久存储介质中记录的上一次调用时间矫正器的第一剩余时间变量,以及距离上一次执行tick函数的tick时间差值;

17、遍历单元,被配置为若第一剩余时间变量与tick时间差值的叠加值大于或等于1秒,则获取当前绝对时间戳,并遍历定时任务管理列表,读取每一个有效启用定时任务的下次到期绝对时间戳;

18、通知单元,被配置为针对每一个有效启用定时任务,若基于当前绝对时间戳和下次到期绝对时间戳,确定到达有效启用定时任务的预设定时时间点,则调用一次与有效启用定时任务对应的回调函数,或者向与有效启用定时任务对应的外部注册对象发送到时广播通知,以通知外部注册对象执行与有效启用定时任务对应的业务逻辑。

19、本申请实施例的第四方面,提供了另一种通用模块,包括:

20、获取单元,被配置为获取多个同源或不同源的外部注册对象对应的有效启用定时任务,并存储为一个定时任务管理列表;

21、第一记录单元,被配置为获取当前绝对时间戳,并将当前绝对时间戳记录为开始时间;

22、消息通知单元,被配置为针对每一个有效启用定时任务,读取其下次到期绝对时间戳,若基于当前绝对时间戳和下次到期绝对时间戳,确定到达有效启用定时任务的预设定时时间点,则调用一次与有效启用定时任务对应的回调函数,或者向与有效启用定时任务对应的外部注册对象发送到时广播通知,以通知外部注册对象执行与有效启用定时任务对应的业务逻辑;

23、第二记录单元,被配置为在调用一次回调函数或发送到时广播通知后,记录最新当前时间戳,并将最新当前时间戳记录为结束时间;

24、第一循环单元,被配置为若结束时间减去开始时间的时间差值大于或等于1秒,则不调用睡觉函数;

25、第二循环单元,被配置为若结束时间减去开始时间的时间差值小于1秒,则调用睡觉函数,睡觉函数的参数传入时间差值。

26、本申请实施例的第五方面,提供了一种客户端,客户端包括上述第三方面或第四方面的通用模块。

27、本申请实施例的第六方面,提供了一种服务器,服务器包括上述第三方面或第四方面的通用模块。

28、本申请实施例的第七方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。

29、本申请实施例的第八方面,提供了一种可读存储介质,该可读存储介质存储本文档来自技高网...

【技术保护点】

1.一种多源定时任务的管理方法,其特征在于,应用于通用模块,包括:

2.根据权利要求1所述的方法,其特征在于,调用预设的时间矫正器,读取永久存储介质中记录的上一次调用所述时间矫正器的第一剩余时间变量,以及距离上一次执行Tick函数的Tick时间差值之后,还包括:

3.根据权利要求1所述的方法,其特征在于,读取每一个所述有效启用定时任务的下次到期绝对时间戳,包括:

4.根据权利要求1或3所述的方法,其特征在于,基于所述当前绝对时间戳和所述下次到期绝对时间戳,确定到达所述有效启用定时任务的预设定时时间点之前,还包括:

5.根据权利要求1所述的方法,其特征在于,所述通用模块包括基础工具类,所述基础工具类包括:第一上层类、第二上层类、第三上层类和第四上层类;所述第一上层类用于实现数据库基本操作功能;所述第二上层类用于实现规则动态调整功能;所述第三上层类用于实现注册和反注册功能;所述第四上层类用于实现标识分配和维护功能;

6.根据权利要求5所述的方法,其特征在于,所述第三下层接口为外部系统注册和反注册接口;所述第四上层接口包括外部系统ID分配接口,与所述外部系统ID分配接口对应的第四上层类为外部系统ID分配类;所述第三上层接口包括注册接口,与所述注册接口对应的第三上层类为注册类;所述第二上层接口包括规则增加接口,与所述规则增加接口对应的第二上层类为规则增加类;所述第一上层接口包括备份接口、访问数据库接口,与所述备份接口对应的第一上层类为备份类,与所述访问数据库接口对应的第一上层类为访问数据库类;

7.根据权利要求6所述的方法,其特征在于,所述第二上层接口还包括规则更新接口,与所述规则更新接口对应的第二上层类为规则更新类;

8.根据权利要求6所述的方法,其特征在于,所述方法还包括:

9.一种多源定时任务的管理方法,其特征在于,包括:

10.一种通用模块,其特征在于,包括:

11.一种通用模块,其特征在于,包括:

12.一种客户端,其特征在于,所述客户端包括如权利要求10或11所述的通用模块。

13.一种服务器,其特征在于,所述服务器包括如权利要求10或11所述的通用模块。

14.一种可读存储介质,所述可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至9中任一项所述方法的步骤。

...

【技术特征摘要】

1.一种多源定时任务的管理方法,其特征在于,应用于通用模块,包括:

2.根据权利要求1所述的方法,其特征在于,调用预设的时间矫正器,读取永久存储介质中记录的上一次调用所述时间矫正器的第一剩余时间变量,以及距离上一次执行tick函数的tick时间差值之后,还包括:

3.根据权利要求1所述的方法,其特征在于,读取每一个所述有效启用定时任务的下次到期绝对时间戳,包括:

4.根据权利要求1或3所述的方法,其特征在于,基于所述当前绝对时间戳和所述下次到期绝对时间戳,确定到达所述有效启用定时任务的预设定时时间点之前,还包括:

5.根据权利要求1所述的方法,其特征在于,所述通用模块包括基础工具类,所述基础工具类包括:第一上层类、第二上层类、第三上层类和第四上层类;所述第一上层类用于实现数据库基本操作功能;所述第二上层类用于实现规则动态调整功能;所述第三上层类用于实现注册和反注册功能;所述第四上层类用于实现标识分配和维护功能;

6.根据权利要求5所述的方法,其特征在于,所述第三下层接口为外部系统注册和反注册接口;所述第四上层接口包括外部系统id分配接口,与所述外部系统id分配接口对应的第...

【专利技术属性】
技术研发人员:唐如意陈裕聪
申请(专利权)人:成都赛力斯科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1