一种异步任务处理方法、装置、计算机设备及存储介质制造方法及图纸

技术编号:38716934 阅读:36 留言:0更新日期:2023-09-08 14:59
本发明专利技术涉及计算机技术领域,公开了一种异步任务处理方法、装置、计算机设备及存储介质,方法包括:当接收到异步任务请求时,将异步任务分别写入任务队列和任务数据表,任务队列中的异步任务按照预定义的优先级依次被取出并执行;通过主线程从任务队列中取出当前要执行的目标任务,并从预定义的线程池中分配子线程执行目标任务;若目标任务执行失败,从任务数据表中提取目标任务,并将目标任务重新写入任务队列。提高了异步任务处理的成功率。提高了异步任务处理的成功率。提高了异步任务处理的成功率。

【技术实现步骤摘要】
一种异步任务处理方法、装置、计算机设备及存储介质


[0001]本专利技术涉及计算机
,具体涉及一种异步任务处理方法、装置、计算机设备及存储介质。

技术介绍

[0002]目前,JAVA中比较常用的异步任务处理手段是@Async注解,即在方法或类代码前添加@Async注解,表示此方法或此类中的方法都是异步方法,@Async注解默认使用线程池SimpleAsyncTaskExecutor,该线程池默认新增一个异步任务就创建一个线程。例如A任务的main代码在运行时,如果运行到@Async注解的B任务位置,则默认线程池新增一个子线程去运行B任务,主线程继续运行A任务的剩余部分,如果下一次运行到@Async注解的C任务位置,则默认线程池再新增一个子线程去运行C任务,主线程继续运行A任务的剩余部分,如果A任务中注解的异步任务较多,则默认线程池会一直创建新子线程,随着系统不断创建新线程,最终会导致系统占用内存过高,引发OutOfMemoryError错误,影响正常业务运转。目前解决这一问题的常用手段是配置自定义线程池,并针对达到线程池的最大线程数这一情本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种异步任务处理方法,其特征在于,所述方法包括:当接收到异步任务请求时,将异步任务分别写入任务队列和任务数据表,所述任务队列中的异步任务按照预定义的优先级依次被取出并执行;通过主线程从所述任务队列中取出当前要执行的目标任务,并从预定义的线程池中分配子线程执行所述目标任务;若所述目标任务执行失败,从所述任务数据表中提取所述目标任务,并将所述目标任务重新写入所述任务队列。2.根据权利要求1所述的方法,其特征在于,所述预定义的优先级是异步任务执行的时间,所述若所述目标任务执行失败,从所述任务数据表中提取所述目标任务,包括:若所述目标任务执行失败,在所述任务数据表中标记所述目标任务的执行状态为失败,并基于预设时间间隔为所述目标任务标记下次执行时间;从所述任务数据表中提取标记后的目标任务。3.根据权利要求2所述的方法,其特征在于,在所述从所述任务数据表中提取标记后的目标任务之前,所述方法还包括:若所述目标任务执行失败,在所述任务数据表中标记所述目标任务的失败次数加1。4.根据权利要求3所述的方法,其特征在于,所述从所述任务数据表中提取标记后的目标任务,包括:判断所述目标任务的失败次数是否大于预设次数阈值;当所述目标任务的失败次数小于预设次数阈值时,从所述任务数据表中提取标记后的目标任务;当所述目标任务的失败次数大于预设次数阈值时,取消将所述目标任务重新写入所述任务队列,并发出告警信息,同时为所述目标任务标记告警次数加1。5.根据权利要求1所述的方法,其特征在于,所述通过主线程从所述任务队列中取出当前要执行的...

【专利技术属性】
技术研发人员:王萍萍
申请(专利权)人:北京自如信息科技有限公司
类型:发明
国别省市:

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

1