我的问题是this answer这里似乎适合我的情况(tomcat)。但是我发现它使用newSingleThreadScheduledExecutor()
。在我的情况下,必须执行的定期任务可能会持久,我想确保它不阻止我的网站,直到它完成(以分开的Thread
运行)。另外,我想确保我的任务Runnable
能够共享网站正在使用的mySQL连接池(通过休眠)。
那么,这仍然是正确的方法,还是我必须使用别的东西?
答案 0 :(得分:2)
我想确保它不会阻止我的网站,直到它有 已完成(作为分离的线程运行)
HTTP连接器线程池和分配给运行计时器任务的线程池是不同的。它们不依赖于彼此,也不会阻止您的网站。
此外,我想确保我的任务Runnable能够 共享该网站的mySQL连接池(通过hibernate) 使用。那么,这仍然是正确的方法还是我必须使用 别的什么?
使用commons DBCP之类的框架配置公共连接池,并在JNDI上查找资源。一旦您查找DataSource
并且连接上的工作已经终止,请将连接返回池中。
方法很好。