在Tomcat中运行计划任务

时间:2015-02-16 13:34:07

标签: java multithreading hibernate jsp

我的问题是this answer这里似乎适合我的情况(tomcat)。但是我发现它使用newSingleThreadScheduledExecutor()。在我的情况下,必须执行的定期任务可能会持久,我想确保它阻止我的网站,直到它完成(以分开的Thread运行)。另外,我想确保我的任务Runnable能够共享网站正在使用的mySQL连接池(通过休眠)。 那么,这仍然是正确的方法,还是我必须使用别的东西?

1 个答案:

答案 0 :(得分:2)

  

我想确保它不会阻止我的网站,直到它有   已完成(作为分离的线程运行)

HTTP连接器线程池和分配给运行计时器任务的线程池是不同的。它们不依赖于彼此,也不会阻止您的网站。

  

此外,我想确保我的任务Runnable能够   共享该网站的mySQL连接池(通过hibernate)   使用。那么,这仍然是正确的方法还是我必须使用   别的什么?

使用commons DBCP之类的框架配置公共连接池,并在JNDI上查找资源。一旦您查找DataSource并且连接上的工作已经终止,请将连接返回池中。

方法很好。