定时任务中断方法、定时器、车辆及存储介质与流程
- 国知局
- 2024-10-21 15:11:36
本申请涉及数据处理,尤其涉及一种定时任务中断方法、定时器、车辆及存储介质。
背景技术:
1、在java(一种计算机语言)中,java.util.timer(即定时器工具)是一种高级定时器,用来在一个后台线程计划执行指定任务,即执行一些需要周期性或定时执行的任务,基于给定的时间点、给定的时间间隔或者给定的执行次数自动执行的任务,例如定时任务调度、定时发送邮件、定时检查数据库更新等。在timer(即定时器)中,配置有schedule函数(即进程调度函数),schedule函数接受三个参数:java.util.timertask task,具体需要执行的任务;long delay,延迟多久后开始执行任务task;long period,每次执行任务task的周期。同时,timer还提供了cancel函数(即任务取消函数)用于取消定时器任务。
2、在相关技术中,调用cancel函数取消定时器任务时,如果某个任务已经开始执行,那么开始执行的任务将不会被停止。例如,对于每隔1分钟执行一次下载任务的需求,由于下载任务是个耗时任务,在用户希望停止下载任务时,有些下载任务正在进行,这种情况下用户即使调用了cancel函数,仍然无法停止已经在执行的下载任务,只能达到后续不再启动新的下载任务的效果。这导致:1、无法自动取消任务,在任务开始执行后无法自动取消,需要手动干预;2、开发难度增强,需要编写额外的代码来处理任务的取消,增加了开发的复杂性;3、存在潜在风险,手动取消任务可能导致任务执行过程中出现异常,影响系统的稳定性和安全性。
技术实现思路
1、鉴于以上所述现有技术的缺点,本申请公开了一种定时任务中断方法、定时器、车辆及存储介质,用于解决现有技术中无法及时有效地中断正在执行中的定时任务的技术问题。
2、第一方面,本申请提供了一种定时任务中断方法,所述方法包括:预先创建阶段任务执行类,所述阶段任务执行类中包括任务取消属性与进程调度函数,其中,所述任务取消属性用于标记定时任务是否被取消;获取待定时执行的目标任务,并调用所述进程调度函数,对所述目标任务进行阶段划分,生成阶段任务集;在执行所述阶段任务集中每一阶段任务之前,查询所述任务取消属性的属性值;若所述属性值为预设的中断属性,则停止执行所述阶段任务集中未执行的阶段任务。
3、于本申请一实施例中,所述调用所述进程调度函数,对所述目标任务进行阶段划分,生成阶段任务集,包括:对所述目标任务进行定时类型分析,确定所述目标任务对应的目标定时类型,其中,所述定时类型包括周期性定时任务;判断所述目标定时类型是否为所述周期性定时任务;若所述目标任务为所述周期性定时任务,则对所述目标任务中的每一周期任务进行阶段划分,生成多个第一阶段任务函数;根据每一所述周期任务对应的所述多个第一阶段任务函数、所述目标任务对应的任务周期与延迟时间,生成所述阶段任务集。
4、于本申请一实施例中,所述定时类型还包括一次性定时任务;在所述确定所述目标任务对应的目标定时类型之后,还包括:判断所述目标定时类型是否为所述一次性定时任务;若所述目标任务为所述一次性定时任务,则对所述目标任务进行阶段划分,生成多个第二阶段任务函数;根据多个所述第二阶段任务函数与所述目标任务对应的延迟时间,生成所述阶段任务集。
5、于本申请一实施例中,所述对所述目标任务进行阶段划分,包括:对所述目标任务进行任务类型分析,确定所述目标任务对应的目标任务类型,其中,所述任务类型包括进度型任务与时长型任务;若所述目标任务为所述进度型任务,则根据预设的进度划分原则对所述目标任务进行阶段划分;若所述目标任务为所述时长型任务,则根据预设的时长划分原则对所述目标任务进行阶段划分。
6、于本申请一实施例中,所述阶段任务集中的每一所述阶段任务根据执行顺序排列;所述在执行所述阶段任务集中每一阶段任务之前,查询所述任务取消属性的属性值,包括:在每两个所述阶段任务之间,预先设置间隔时间与查询频率;若监控到上一阶段任务执行完毕,则在所述间隔时间内按照所述查询频率对所述属性值进行多次查询,直至下一阶段任务开始执行。
7、于本申请一实施例中,所述阶段任务执行类还包括任务取消函数;设置所述属性值的方法,包括:响应于接收到的中断请求,调用所述任务取消函数对所述中断请求进行解析,获得任务标识,其中,所述中断请求中携带有所述任务标识;将所述任务标识与所述目标任务对应的目标任务标识进行匹配;若匹配一致,则将所述属性值设置为所述中断属性;若所述匹配不一致,则将所述属性值设置为执行属性。
8、于本申请一实施例中,所述停止执行所述阶段任务集中未执行的阶段任务,包括:基于所述中断属性,获取所述阶段任务集中未执行的分段任务函数,并确定为目标阶段任务函数;根据所述目标分段任务函数生成中断指令;执行所述中断指令,控制所述目标阶段任务函数对应的阶段任务停止执行。
9、第二方面,本申请提供了一种可进行定时任务中断的定时器,所述定时器包括:构建模块,用于预先创建阶段任务执行类,所述阶段任务执行类中包括任务取消属性与进程调度函数,其中,所述任务取消属性用于标记定时任务是否被取消;分阶段模块,用于获取待定时执行的目标任务,并调用所述进程调度函数,对所述目标任务进行阶段划分,生成阶段任务集;查询模块,用于在执行所述阶段任务集中每一阶段任务之前,查询所述任务取消属性的属性值;控制模块,用于若所述属性值为预设的中断属性,则停止执行所述阶段任务集中未执行的阶段任务。
10、第三方面,本申请提供了一种车辆,其特征在于,包括第二方面所述的可进行定时任务中断的定时器,或,使用如第一方面所述定时任务中断方法。
11、第四方面,本申请提供了一种计算机可读存储介质,其上存储有计算机程序,当计算机程序被计算机的处理器执行时,使计算机执行第一方面描述的定时任务中断方法。
12、如上所述,本申请实施例提供的一种定时任务中断方法、定时器、车辆及存储介质,具有以下有益效果:
13、首先通过预先创建阶段任务执行类,该类中包括任务取消属性与进程调度函数,其中,任务取消属性用于标记定时任务是否被取消,然后获取待定时执行的目标任务,通过调用进程调度函数,对该目标任务进行阶段划分,生成阶段任务集,在执行阶段任务集中每一阶段任务之前,先查询任务取消属性的属性值,若此时属性值为中断属性,则停止执行阶段任务集中未执行的阶段任务,通过创建阶段任务执行类对定时任务进行分段的方式,即将该目标任务划分为多阶段执行,执行完上一阶段任务之后,若定时任务仍未执行完毕,则在执行下一阶段任务之前先查询属性值,为中断属性时则进行任务中断,在每个阶段的过渡点自动检测属性状态,实现了定时任务的分阶段执行和自动取消,保证了定时任务的及时与有效中断。
14、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
技术特征:1.一种定时任务中断方法,其特征在于,所述方法包括:
2.根据权利要求1所述的定时任务中断方法,其特征在于,所述调用所述进程调度函数,对所述目标任务进行阶段划分,生成阶段任务集,包括:
3.根据权利要求2所述的定时任务中断方法,其特征在于,所述定时类型还包括一次性定时任务;
4.根据权利要求1所述的定时任务中断方法,其特征在于,所述对所述目标任务进行阶段划分,包括:
5.根据权利要求1所述的定时任务中断方法,其特征在于,所述阶段任务集中的每一所述阶段任务根据执行顺序排列;
6.根据权利要求1至5任一项所述的定时任务中断方法,其特征在于,所述阶段任务执行类还包括任务取消函数;
7.根据权利要求6所述的定时任务中断方法,其特征在于,所述停止执行所述阶段任务集中未执行的阶段任务,包括:
8.一种可进行定时任务中断的定时器,其特征在于,所述定时器包括:
9.一种车辆,其特征在于,包括权利要求8所述的可进行定时任务中断的定时器,或,使用如权利要求1至7任一项所述定时任务中断方法。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机可读指令,当所述计算机可读指令被计算机的处理器执行时,使计算机执行权利要求1至7任一项所述的定时任务中断方法。
技术总结本申请提供一种定时任务中断方法、定时器、车辆及存储介质,其中,该方法包括:预先创建阶段任务执行类,阶段任务执行类中包括任务取消属性与进程调度函数,任务取消属性用于标记定时任务是否被取消;获取待定时执行的目标任务,并调用进程调度函数,对目标任务进行阶段划分,生成阶段任务集;在执行阶段任务集中每一阶段任务之前,查询任务取消属性的属性值;若属性值为预设的中断属性,则停止执行阶段任务集中未执行的阶段任务。通过创建阶段任务执行类对定时任务进行分段的方式,在执行每一阶段任务之前根据属性值进行任务中断,实现了定时任务的分阶段执行和自动取消,保证了定时任务的及时与有效中断。技术研发人员:李瑞杰,于红超,徐开庭,李洋全受保护的技术使用者:重庆赛力斯凤凰智创科技有限公司技术研发日:技术公布日:2024/10/17本文地址:https://www.jishuxx.com/zhuanli/20241021/320808.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表