在web项目中能初始化一个线程池等待并处理长时间任务吗
一个web项目,有一些需要长时间执行的任务,用了ssh架构
我请求一个action后,先是更新数据库,然后就是一个要执行一分钟左右的一个任务,这样前台就需要等很久,我希望更新数据库后马上返回,那个任务还在后台执行。我觉得创建一个线程来执行那个任务是可以实现的,但现在我希望在web项目运行的时候就初始化一个线程池,然后action中只需要创建一个线程,扔到里面执行就可以了。可以实现这样的机制吗?
或者是不初始化线程池,用spring的面向切面编程能不能简单的实现
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
不是凭空想的呀 我用lucene对数据库建了索引 我现在在页面建了一个类别根据关键词搜索出一系列文章 然后把文章和类别的关系写到数据库 这个是由一个线程执行的 我自己写了个线程池 已经可以完成任务了 就向异步调用一样
不知道用在什么场景,是你凭这想你出来的吧,要是我来做。
web将耗时任务(一条记录)写到一个任务表中,置flag为NOT_START
然后写一个单独的后台程序也许有界面,通常情况下是没界面, 定时从任务表中取FLAG!=complete任务执行。
执行前置flag为processing执行成功后置flag为complete,如果失败置任务为failed.
你在web中new一个thread太理想化,又比较麻烦。执行时出错了怎么办.和web的功能混在一起出错了都不好调试
刚刚弄个例子给你看看:
线程类:
Action:
结果:
刚刚弄个例子给你看看:
线程类:
Action:
结果: