tomcat里面跑一个B/S系统,可以启动一个运行时间比较长的程序。希望在发出请求后程序可以在服务器运行,但是当程序没有运行完的时候如果再次发出请求将提示已经在运行。在运行完毕后,可以发出上次运行的信息报告,如运行开始时间,运行时间。也就是说希望可以获取程序是否运行的状态以及运行后的信息。
quartz可以实现么
[b]问题补充:[/b]
[code="java"]
class servlet {
public void execute() {
1. run the long time programe.
2. return a html to the browser.
}
}
[/code]
比如我在一个servlet里面放这个长请求。
客户发出请求后,这个程序将运行起来,页面将在长程序执行完成后才能执行第二步,返回页面。
但是我现在希望程序可以在发出请求后在后台运行,立即返回一个页面提示程序已经开始运行了。至于如何跟踪长程序的运行状态,我现在想到的是,可以通过在文件里写状态,在执行前通过文件判断状态就好了。
这个问题是不是涉及到建立新的线程之类的问题,请指教。
可以用quartz来启动一个时间比较长的任务,自己设计一下,
保存一个中间状态,用来指标任务是否完成,
不需要自己新建什么线程,由quartz来新建一个线程运行这个长时间任务就好
看它的文档去实现
开源任务调度框架Quartz的一份文档
http://www.iteye.com/topic/210482