Java 在Tomcat中运行计划任务

Java 在Tomcat中运行计划任务,java,multithreading,hibernate,jsp,Java,Multithreading,Hibernate,Jsp,我的问题是关于我的案例(tomcat)的。但是,我看到它使用了一个newSingleThreadScheduledExecutor()。在我的情况下,必须执行的定期任务可能会持续很长时间,我希望确保它不会阻止我的网站,直到它完成(作为一个独立的线程运行)。此外,我希望确保我的任务Runnable能够共享网站正在使用的mySQL连接池(通过hibernate)。 那么,这仍然是正确的方法还是我必须使用其他方法 我想确保它不会阻止我的网站,直到它有 已完成(作为独立线程运行) HTTP连接器线程池和

我的问题是关于我的案例(tomcat)的。但是,我看到它使用了一个
newSingleThreadScheduledExecutor()
。在我的情况下,必须执行的定期任务可能会持续很长时间,我希望确保它不会阻止我的网站,直到它完成(作为一个独立的
线程运行)。此外,我希望确保我的任务
Runnable
能够共享网站正在使用的mySQL连接池(通过hibernate)。 那么,这仍然是正确的方法还是我必须使用其他方法

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

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

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

使用类似的框架配置公共连接池,并在JNDI上查找资源。查找该
数据源
并终止连接后,将连接返回池


这种方法很好。

我的解决方案是使用Quartz之类的调度器。它很容易使用,并且已经在prod中测试了多年。然而,我不想写这篇文章来回答这个问题,因为我通常反对引入新的框架来解决单个任务:)非常感谢。至于连接,我已经在使用jdbc+Hibernate了,还有一个问题。由“scheduler.scheduleAtFixedRate”添加的所有任务是按顺序(在单个线程中)执行的,还是并行执行且每个任务都有自己的线程?我正在寻找一个多线程解决方案,其中每个任务都是独立执行的。我做了一个测试,看到“newSingleThreadScheduledExecutor”将按顺序执行任务。如果我想并行使用它们,那么我需要使用“newScheduledThreadPool”检查并发性。