[发明专利]周期性任务的执行方法、装置、电子设备及存储介质有效
申请号: | 201910457524.6 | 申请日: | 2019-05-29 |
公开(公告)号: | CN110162392B | 公开(公告)日: | 2022-10-25 |
发明(设计)人: | 曹福祥;刘希诚;邢志浩;王玉龙 | 申请(专利权)人: | 北京达佳互联信息技术有限公司 |
主分类号: | G06F9/48 | 分类号: | G06F9/48 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 丁芸;马敬 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 周期性 任务 执行 方法 装置 电子设备 存储 介质 | ||
本公开实施例提供了一种周期性任务的执行方法、装置、电子设备及存储介质,应用于互联网技术领域,所述方法包括:根据周期性任务的任务标识信息,确定执行周期性任务的固定线程;当周期性任务的执行周期到达时,从固定线程中获取周期性任务的有效期标识信息;当有效期标识信息标识周期性任务的有效期为有效状态时,则执行周期性任务。本公开实施例可降低业务的复杂性。
技术领域
本公开涉及互联网技术领域,特别是涉及一种周期性任务的执行方法、装置、电子设备及存储介质。
背景技术
在互联网服务的开发过程中,线程池是一种常用的组件。线程池维护着多个线程,等待调用者分配可并发执行的任务。它简化了开发多线程高并发程序的技术成本,也避免了频繁创建和销毁线程带来的性能损失。在某些业务场景下,可能需要频繁地创建、终止若干个周期性任务,或者变更周期性任务的工作内容。基于传统的线程池实现这样的工作有一定的性能开销和开发成本。
通常情况下,线程池可以提供以下功能:执行一个指定的任务、定时执行一个指定的任务或者周期性执行一个指定的任务。例如,Java中的ScheduledExecutorService。基于这类传统线程池实现频繁地创建、终止若干个周期性任务,或者变更任务内容的工作,可以通过以下方式实现:
a.为每个周期性任务指定唯一标识;b.在线程池中创建任务,获得任务对应句柄,并将标识和句柄关系维护在映射表中;c.当需要终止时,先根据任务标识从映射表中取得句柄,通过句柄取消(或终止)任务;d.当需要变更时,先根据任务标识从映射表中取得句柄,通过句柄取消(或终止)任务,再使用同一标识和更新的内容创建新任务。
其中,任务的终止可能需要等待当前执行退出,因此任务的终止通常会阻塞;对于高性能服务,通常要避免阻塞操作,特别是在异步服务中,阻塞操作会影响事件循环的处理效率。当终止和变更频繁操作时,阻塞会极大影响整体服务的性能。可见,任务的终止是比较重要的操作,为了避免阻塞带来的性能损失,业务上层可能需要做一些比较复杂的设计,增加了业务复杂性。
发明内容
本公开提供一种周期性任务的执行方法、装置、电子设备及存储介质,以至少解决相关技术中在处理周期性任务时,降低业务复杂性。具体技术方案如下:
根据本公开实施例的第一方面,提供了一种周期性任务的执行方法,所述方法包括:
根据所述周期性任务的任务标识信息,确定执行所述周期性任务的固定线程;
当所述周期性任务的执行周期到达时,从所述固定线程中获取所述周期性任务的有效期标识信息;
当所述有效期标识信息标识所述周期性任务的有效期为有效状态时,则执行所述周期性任务。
可选的,所述从所述固定线程中获取所述周期性任务的有效期标识信息,包括:
从所述固定线程中的私有映射表中获取所述周期性任务的有效期标识信息。
可选的,在所述执行所述周期性任务之后,所述方法还包括:
更新所述私有映射表中所述周期性任务的有效期标识信息。
可选的,在所述从所述固定线程中获取所述周期性任务的有效期标识信息之后,所述方法还包括:
当所述有效期标识信息标识所述周期性任务的有效期为无效状态时,不执行所述周期性任务,并从所述私有映射表中删除所述周期性任务的相关信息。
可选的,在所述根据所述周期性任务的任务标识信息,确定执行所述周期性任务的固定线程之前,所述方法还包括:
在接收到所述周期性任务时,为所述周期性任务分配任务标识信息和有效期标识信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京达佳互联信息技术有限公司,未经北京达佳互联信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910457524.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种异步框架及其实现方法
- 下一篇:任务调度方法、装置及存储介质