一种队列控制方法、装置、设备及介质与流程

本申请涉及存储,特别涉及一种队列控制方法、装置、设备及介质。
背景技术:
1、oom(即out of memory,内存溢出)是指应用系统中存在无法回收的内存或使用的内存过多,使得程序运行要用到的内存大于能提供的最大内存。此时,服务器系统会无法运行,有时甚至会自动关闭软件,其中,重启服务器或者系统软件后会释放掉一部分内存,但是,由于系统配置、数据流、用户代码等原因导致的内存溢出错误,即使用户重新执行任务依然无法避免。
2、目前,由于延时队列为无界队列,在使用延时队列时,容易导致出现内存溢出问题,影响应用系统的可靠性。因此,如何避免内存溢出问题,提升应用系统的可靠性是目前亟待解决的问题。
技术实现思路
1、有鉴于此,本申请的目的在于提供一种队列控制方法、装置、设备及介质,能够有效的避免内存溢出,从而提升应用系统的可靠性。其具体方案如下:
2、第一方面,本申请公开了一种队列控制方法,包括:
3、当获取到新的延时任务,则检查剩余内存;
4、基于所述剩余内存判断是否满足延时队列对应的预设任务添加条件;
5、如果满足所述预设任务添加条件,则将所述新的延时任务添加至所述延时队列;
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、相应地,本申请提供的一种队列控制装置、设备及可读存储介质,也同样具有上述技术效果。
技术特征:
1.一种队列控制方法,其特征在于,包括:
2.根据权利要求1所述的队列控制方法,其特征在于,所述基于所述剩余内存判断是否满足延时队列对应的预设任务添加条件,包括:
3.根据权利要求1所述的队列控制方法,其特征在于,在所述将所述新的延时任务添加至延时队列对应的候补文件中之前,还包括:
4.根据权利要求1所述的队列控制方法,其特征在于,在所述将所述新的延时任务添加至所述延时队列之后,还包括:
5.根据权利要求4所述的队列控制方法,其特征在于,还包括:
6.根据权利要求1至5任一项所述的队列控制方法,其特征在于,还包括:
7.根据权利要求6所述的队列控制方法,其特征在于,所述从所述候补文件中选取候补的延时任务添加至所述延时队列,包括:
8.一种队列控制装置,其特征在于,包括:
9.一种电子设备,其特征在于,包括存储器和处理器,其中:
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的队列控制方法。
技术总结
本申请公开了一种队列控制方法、装置、设备及介质,包括:当获取到新的延时任务,则检查剩余内存;基于所述剩余内存判断是否满足延时队列对应的预设任务添加条件;如果满足所述预设任务添加条件,则将所述新的延时任务添加至所述延时队列;如果不满足所述预设任务添加条件,则将所述新的延时任务添加至延时队列对应的候补文件中,其中,所述候补文件存储于非内存存储设备。这样,能够有效的避免内存溢出,从而提升应用系统的可靠性。
技术研发人员:吉晓奇,黄强
受保护的技术使用者:杭州安恒信息技术股份有限公司
技术研发日:
技术公布日:2024/11/28
技术研发人员:吉晓奇,黄强
技术所有人:杭州安恒信息技术股份有限公司
备 注:该技术已申请专利,仅供学习研究,如用于商业用途,请联系技术所有人。
声 明 :此信息收集于网络,如果你是此专利的发明人不想本网站收录此信息请联系我们,我们会在第一时间删除
