474 Star 3.1K Fork 1.2K

GVP京东零售 / asyncTool

 / 详情

请教作者一个问题

Backlog
Task
Opened this issue  
2020-09-05 12:10

在web应用中使用这种自己写的多线程代码,怎么保证应用被关掉的时候保证线程池中的任务不被中断了啊?
我的理解是自己写的多线程是JVM级别的吧,web应用关闭就关了,线程还是继续执行的,但是如果线程里依赖了web容器中的对象怎么搞?
比如说在springboot,我自己使用ThreadPoolExecutor执行任务,任务可能使用到了一些ioc容器管理的对象,怎么保证在上线过程中,杀调springboot进程的时候保证线程池里的任务能够用到容器对象并且顺利执行完再关闭应用呢?

Attachments

Comments (3)

张晨曦 created任务
展开全部操作日志

可以监听spring应用关闭事件,在里面调用线程池的shutdown。

嗯嗯 这个我也试着写过在@PreDestroy中调用线程池的shutdown,但是线程中依赖的ioc容器还是会被销毁调,导致空指针异常。就是不知道有没有什么更优雅的方式能让线程执行完毕再关闭应用呢?

Sign in to comment

Status
Assignees
Projects
Milestones
Pull Requests
Successfully merging a pull request will close this issue.
Branches
Planed to start   -   Planed to end
-
Top level
Priority
Duration (hours)
Confirm
参与者(2)
303698 tianyalei 1578919857
Java
1
https://gitee.com/jd-platform-opensource/asyncTool.git
git@gitee.com:jd-platform-opensource/asyncTool.git
jd-platform-opensource
asyncTool
asyncTool

Search