石英,调度过程始终存在
Quartz, schedule process always alive
目前,我有一个基于 Java 7、tomcat 7 和 Spring 4 的 Web 应用程序,它在 tomcat 启动时调用一个线程。
此线程始终处于活动状态,java 代码为:
public class Scheduler {
Queue<Long> queue = new ArrayBlockingQueue<Long>();
private static class ThreadExecutor implements Runnable
{
.......
@Override
public void run()
{
while(true)
{
Long ID = queue.get();
if(ID != null)
{
Object o = webFacade.get(ID);
//Exec....
}
else
{
try
{
Thread.sleep(30000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}
}
一个外部事件用对象的 ID 填充队列。
使用一个 tomcat 这个线程运行良好,但现在我需要添加另一个 tomcat,所以我想在集群模式下引入 Quartz。
我已经在我的项目中配置了 Quartz,它似乎可以工作,但是现在我如何使用 Quartz "translate" 这个 class?我希望只有一个线程处于活动状态,因为它对我的数据库来说非常昂贵。
提前致谢
一般情况下,Quartz 在 运行 集群模式下保证作业将仅在一台服务器上触发(和处理)。
因此 Job 将是您执行的任务(换句话说,应该执行什么)。
现在 Quartz 还引入了触发器的概念,它基本上定义了何时 作业将被触发。
根据您的代码片段,您 运行 每 30000 毫秒 = 30 秒执行一次作业。所以你将每 30 秒触发一次你的东西(SimpleTrigger 将完成这项工作)。
所以,'while' 循环消失了,它将由 quartz 自动处理。
在工作中,您只会使用队列。不清楚谁填满了这个队列,但它看起来像是一个不同的问题。
很难说你是如何翻译队列的,但一般来说工作应该
- 从队列中获取
- 像现在一样调用 webFacade
就是这样。最后但同样重要的是,Spring 与 Quartz 完美集成。参见 Chapter 33.6。
目前,我有一个基于 Java 7、tomcat 7 和 Spring 4 的 Web 应用程序,它在 tomcat 启动时调用一个线程。 此线程始终处于活动状态,java 代码为:
public class Scheduler {
Queue<Long> queue = new ArrayBlockingQueue<Long>();
private static class ThreadExecutor implements Runnable
{
.......
@Override
public void run()
{
while(true)
{
Long ID = queue.get();
if(ID != null)
{
Object o = webFacade.get(ID);
//Exec....
}
else
{
try
{
Thread.sleep(30000);
}
catch (InterruptedException e)
{
e.printStackTrace();
}
}
}
}
}
}
一个外部事件用对象的 ID 填充队列。 使用一个 tomcat 这个线程运行良好,但现在我需要添加另一个 tomcat,所以我想在集群模式下引入 Quartz。 我已经在我的项目中配置了 Quartz,它似乎可以工作,但是现在我如何使用 Quartz "translate" 这个 class?我希望只有一个线程处于活动状态,因为它对我的数据库来说非常昂贵。
提前致谢
一般情况下,Quartz 在 运行 集群模式下保证作业将仅在一台服务器上触发(和处理)。
因此 Job 将是您执行的任务(换句话说,应该执行什么)。
现在 Quartz 还引入了触发器的概念,它基本上定义了何时 作业将被触发。
根据您的代码片段,您 运行 每 30000 毫秒 = 30 秒执行一次作业。所以你将每 30 秒触发一次你的东西(SimpleTrigger 将完成这项工作)。
所以,'while' 循环消失了,它将由 quartz 自动处理。 在工作中,您只会使用队列。不清楚谁填满了这个队列,但它看起来像是一个不同的问题。
很难说你是如何翻译队列的,但一般来说工作应该
- 从队列中获取
- 像现在一样调用 webFacade
就是这样。最后但同样重要的是,Spring 与 Quartz 完美集成。参见 Chapter 33.6。