springboot多线程问题

Ranger
  • 47

我做了一个基于springboot的与手机App交互的系统。
正常来说,就是App向系统发送一个POST Request,请求内容是一段json。然后我的系统处理完会立马Response一串json。

但是现在有个需求,我的App向系统发送完Request后,系统会立刻Response,然后系统再处理一些东西,最后给手机App发一个推送。

我想用多线程的方式,系统的Controller拦截到Request后,交给Service处理。Service里启动一个子线程,然后Service就return了一段json,主线程工作结束,并且手机收到了Response。刚才启动的子线程此时还在处理,等几秒钟处理完成后,再向手机App发送推送。
可是我测试的时候发现,一旦Service return了之后,子线程也就停止运行了。

所以这种需求应该用什么方式实现?或者有没有办法,Service可以提前Response数据给手机,然后继续处理,就是说不再使用return “json”的方式,而且用某种方法Response,然后继续跑剩下的内容,最后Service的函数结束,这样也就不用启动子线程了。

回复
阅读 2.9k
1 个回答

将所有的子线程都使用一个指定的线程池去维护,在系统启动时初始化这个线程池。在service中将任务线程提交到线程池中,线程池处理任务并给出相应推送结果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏