定时信息的调度方法、装置、设置、介质和程序与流程

文档序号:35570003发布日期:2023-09-24 07:17阅读:30来源:国知局
定时信息的调度方法、装置、设置、介质和程序与流程

本技术实施例涉及计算机,尤其涉及一种定时信息的调度方法、装置、设置、介质和程序。


背景技术:

1、在一些业务平台中,能够为用户提供业务在各阶段的通知信息,如短信通知,通常一个业务包括多个阶段,例如,用户注册阶段、认证阶段、产品开通阶段、申请阶段、确认阶段等。各个阶段具有先后顺序,用户在当前阶段执行对应操作后,平台需要在t+1、t+3、t+7、t+15日期通知用户进行下一个阶段的操作,其中,t为用户在当前阶段执行操作的日期。

2、上述场景中短信发送为一种定时任务,目前是通过延迟队列进行发送,业务平台根据每个用户的短信发送时间生成定时任务,并将定时任务放入延迟队列,在某个发送周期内,延迟队列中的定时任务并不是全部都要发送,例如延迟队列中有1万条定时任务,实际要发送的定时任务可能只有200条。现有的一种方案中,发送设备对延迟队列中的定时任务进行遍历筛选出需要发送的定时任务,只对筛选出的需要发送的定时任务进行发送。现有的另一种方案中,将定时任务放到延迟队列后,先对定时任务进行筛选,筛选出不需要发送的定时任务并删除,延迟队列中只保留需要发送的定时任务,大量频繁删除数据可能存在误删除,导致短信漏发,并且,有些消息中间件的延迟队列不支持删除。

3、综上,现有的定时任务的发送方法,在延迟队列中对定时任务进行筛选和删除操作,需要对全量数据出入延迟队列,尤其在多业务的大数据量场景下,定时任务的数量多,需要占用大量的时间和资源,且数据删除操作导致数据不安全,导致定时任务的发送成本高,可靠性低。


技术实现思路

1、本技术实施例提供一种定时信息的调度方法、装置、设置、介质和程序,该方法通过提前对定时信息进行筛选,放入延迟队列中的定时信息不需要筛选,可以直接发送,从而能够避免大量定时信息出入延迟队列,以及对延迟队列中的数据进行频繁删除,提高了定时信息的发送效率和发送数据的准确性。

2、第一方面,本技术实施例提供一种定时信息的调度方法,所述方法用于对业务的定时信息进行调度,所述业务包括至少一个子业务,对于一个子业务所述方法包括:

3、在第一调度周期内,根据所述子业务的筛选字段从所述业务的业务信息中,确定所述子业务待发送的第一定时信息,将所述第一定时信息的数据存储到存储空间中;

4、在第二调度周期内,从所述存储空间中获取所述第一定时信息的数据,其中,所述第二调度周期为所述第一调度周期之后的第n个调度周期,n大于或者等于1;

5、根据所述子业务的筛选字段和所述第二调度周期对所述第一定时信息进行筛选,得到第二定时信息,将所述第二定时信息存放到延迟队列中,所述延迟队列中的定时信息在发送时不再进行筛选。

6、在一些实施例中,所述业务的业务信息中包括用户信息和所述业务的子业务的业务信息,每个子业务的业务信息包括子业务涉及的用户的业务信息;

7、所述在第一调度周期内,根据所述子业务的筛选字段在所述业务的业务信息中,确定所述子业务待发送的第一定时信息,包括:

8、将所述子业务的筛选字段的取值与所述子业务的涉及的用户的业务信息进行匹配,确定与所述子业务的筛选字段的取值匹配的第一用户;

9、根据所述第一用户的业务信息和用户信息,生成所述第一定时信息。

10、在一些实施例中,所述业务包括多个子业务,所述多个子业务之间具有顺序关系,所述子业务的筛选字段包括所述子业务的关联子业务的执行状态字段和/或所述子业务的信息发送状态字段,所述子业务的关联子业务的执行状态字段用于表示所述子业务的关联子业务是否已执行,所述子业务的信息发送状态字段用于表示对应的信息发送时间是否已发送信息。

11、在一些实施例中,所述根据所述子业务的筛选字段和所述第二调度周期对所述第一定时信息进行筛选,得到第二定时信息,包括:

12、根据所述第二调度周期,从所述第一定时信息中筛选发送时间与所述第二调度周期匹配的定时信息,得到第一候选定时信息;

13、将所述子业务的筛选字段,与所述第一候选定时信息包括的用户的业务信息进行匹配;

14、确定与所述子业务的筛选字段的取值匹配的第一候选定时信息为所述第二定时信息。

15、在一些实施例中,所述业务包括多个子业务,所述多个子业务之间具有顺序关系,所述第一定时信息的数据包括定时信息的内容、用户信息和用户的业务信息,所述用户的业务信息包括用户关联的子业务的执行状态、执行时间、信息发送时间、信息发送状态,所述用户关联的子业务的执行状态用于表示子业务是否已执行,所述信息发送状态用于表示对应的信息发送时间是否已发送信息。

16、在一些实施例中,所述将所述第二定时信息存放到延迟队列之后,还包括:

17、实时向发送设备发送通知消息,所述通知消息用于通知所述发送设备对延迟队列中的定时信息进行发送。

18、在一些实施例中,所述延迟队列中的定时信息由发送设备采用多进程并行发送。

19、在一些实施例中,所述方法还包括:

20、检测服务器的运行状态;

21、当根据所述服务器的运行状态,确定所述服务器处于空闲状态时,启动所述所定时信息的调度方法。

22、在一些实施例中,每个子业务设置有一个筛选任务和一个发送任务;

23、所述子业务对应的筛选任务,用于在所述第一调度周期内,根据所述子业务的筛选字段从所述业务的业务信息中,确定所述子业务待发送的第一定时信息,将所述第一定时信息的数据存储到所述存储空间中;

24、所述子业务对应的发送任务,用于在所述第二调度周期内,从所述存储空间中获取所述第一定时信息的数据,根据所述子业务的筛选字段和所述第二调度周期对所述第一定时信息进行筛选,得到第二定时信息,将所述第二定时信息放到所述延迟队列中。

25、在一些实施例中,所述子业务的筛选字段存储在所述业务的管理表格中,所述管理表格和所述业务的业务信息存储在数据库中;

26、所述子业务对应的筛选任务和发送任务从所述管理表格中查询所述子业务的筛选字段。

27、在一些实施例中,所述存储空间采用redis系统;所述管理表格中还包括所述子业务的筛选结果的索引字段;

28、所述将所述第一定时信息的数据存储到存储空间中,包括:

29、将所述第一定时信息的数据存储到所述redis系统,并将所述第一定时信息的数据在所述redis系统中的索引值存储到所述子业务的筛选结果的索引字段中;

30、所述在所述第二调度周期到达时,从所述存储空间中获取所述第一定时信息的数据,包括:

31、在所述第二调度周期到达时,从所述管理表格中查询所述第一定时信息的数据在所述redis系统中的索引值;

32、根据所述第一定时信息的数据在所述redis系统中的索引值,从所述redis系统中读取所述第一定时信息的数据。

33、在一些实施例中,所述方法还包括:

34、当所述延迟队列中的所述第二定时信息被发送之后,更新所述存储空间中存储的所述第二定时信息对应的用户的信息发送状态以及所述业务信息中所述第二定时信息对应的用户的信息发送状态。

35、第二方面,本技术实施例提供一种定时信息的调度装置,用于对业务的定时信息进行调度,所述业务包括至少一个子业务,所述装置包括:

36、第一筛选模块,用于在第一调度周期内,根据所述子业务的筛选字段从所述业务的业务信息中,确定所述子业务待发送的第一定时信息,将所述第一定时信息的数据存储到存储空间中;

37、第二筛选模块,用于在第二调度周期内,从所述存储空间中获取所述第一定时信息的数据,根据所述子业务的筛选字段和所述第二调度周期对所述第一定时信息进行筛选,得到第二定时信息,将所述第二定时信息存放到延迟队列中,其中,所述第二调度周期为所述第一调度周期之后的第n个调度周期,n大于或者等于1,所述延迟队列中的定时信息在发送时不再进行筛选。

38、第三方面,本技术实施例提供一种服务器,包括:处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行第一方面任一项所述的方法。

39、第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序使得计算机执行如上述第一方面所述的方法。

40、第五方面,本技术实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的方法。

41、本技术实施例提供的定时信息的调度方法、装置、设置、介质和程序,在第一调度周期内,根据子业务的筛选字段从业务的业务信息中,确定子业务待发送的第一定时信息,将第一定时信息的数据存储到存储空间中,在第二调度周期内,从存储空间中获取第一定时信息的数据,根据子业务的筛选字段和第二调度周期对第一定时信息进行筛选,得到第二定时信息,将第二定时信息存放到延迟队列中,延迟队列中的定时信息在发送时不再进行筛选。该方法通过提前对定时信息进行筛选,放入延迟队列中的定时信息不需要筛选,可以直接发送,从而能够避免大量定时信息出入延迟队列,以及对延迟队列中的数据进行频繁删除,提高了定时信息的发送效率和发送数据的准确性。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1