`
MauerSu
  • 浏览: 514695 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

quartz的任务调度,同一个任务,在相同的时间被调用了2次

 
阅读更多
源:http://www.iteye.com/topic/173080
评:
应大家要求,解释一下原因,是TOMCAT的配置文件server.xml配置不当引起的,
请看下面这段配置就是错误的:
<Host name="www.***.com" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" />
<Context path="" docBase="/tomcat/webapps/***" debug="1" />
<Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" />
</Host>

正确的配置如下
<Host name="www.***.com" debug="0" appBase="" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false">
<Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true" />
<Context path="" docBase="/tomcat/webapps/***" debug="1" />
<Context path="/***2" docBase="/tomcat/webapps/***2" debug="1" />
</Host>
这两段的区别是第二段去除了appBase="webapps"中的webapps变成了appBase="",因为web应用程序都是放在webapps这个目录下的,如果不把“webapps“去掉,这里会调用一次quartz的任务调度,在接下来的“<Context path”中又会调用一次quartz的任务调度,所以就重复了2次

----------------------
看了此贴确实解决了我的问题。但是我要补充一下:楼主所说的情况并没有完全描述清楚
现在问题分两种情况:
1:把工程发布到tomcat的webapps目录下:
这样执行定时任务是没有问题的。我们也不用更改tomcat的配置。我找了几个tomcat,发现appBase="webapps"是tomcat的默认配置。我们在本地测试时发现定时任务只会执行一次。而且对多个定时进行监控,一切正常。所以,如果此种情况,那么,恭喜你,你不要改配置文件。
2:在tomcat的conf\Catalina\localhost目录下放置配置文件,把配置文件指向tomcat的外部工程。
这样就会出现调用两次定时任务的情况。所以请按楼主所描述的那样修改tomcat的server.xml配置文件。
在此,还是要感谢楼主呀。要不然,累死也很难发现这个问题。
分享到:
评论

相关推荐

    Quartz任务调度器

    而`Trigger`则定义了任务何时被执行,它可以是基于时间的(如每小时执行一次)或事件驱动的。`Scheduler`是调度器,负责管理和执行Jobs以及Triggers。开发者可以通过`Scheduler`来安排任务的执行,并通过`JobDetail`...

    quartz 定时任务调度

    Quartz 是一个开源的作业调度框架,用于在 Java 应用程序中实现复杂的时间调度任务。它允许开发者定义定时任务,这些任务会在指定的时间点自动执行。Quartz 提供了一套丰富的 API 和支持,可以方便地与 Spring 框架...

    quartz 调用两次任务

    当一个任务被定义并附加到触发器后,Quartz 调度器会在指定的时间点启动这个任务。然而,如果一个任务被意外地调度了两次,那么可能的原因有以下几点: 1. **代码逻辑错误**:可能是代码中创建了两个相同的 Job 和 ...

    Quartz.Net任务调度

    Quartz.Net是一个强大的任务调度框架,它在.NET环境中被广泛应用,尤其在需要执行定时任务的系统中。Quartz.Net的设计灵感来源于Java的Quartz库,它允许开发者灵活地定义和管理作业(Jobs)以及触发器(Triggers),...

    spring任务调度(Quartz )

    3. **调度器配置**:`SchedulerFactoryBean`是Spring对Quartz调度器的包装,它管理所有的触发器和任务。在这里,我们将`cron`触发器添加到调度器中,使得任务与触发器关联起来。 接下来,我们看下服务类和服务的...

    Quartz.net作业调度自定义定时执行任务多任务执行c#

    Quartz.NET是一个强大的开源作业调度框架,用于在.NET环境中创建和执行定时任务。它提供了高度灵活的调度功能,使得开发者可以轻松地定义和控制任务的执行时间。在"Quartz.net作业调度自定义定时执行任务多任务执行...

    C#基于Quartz任务调度系统

    在软件开发中,任务调度是一项重要的功能,它允许开发者安排任务在特定时间执行,比如数据同步、定时备份、报告生成等。Quartz是一款强大的开源任务调度库,广泛应用于Java和.NET生态系统,包括C#。本项目“C#基于...

    Quartz调度、终止执行的任务

    Quartz是一款开源的作业调度框架,它允许开发者创建和安排任务执行。在Java应用程序中,Quartz能够帮助我们在特定的时间点或按照预设的周期执行某些功能,如数据收集、日志清理等。当我们需要终止某个正在运行的任务...

    Quartz 任务调度器

    Quartz 是一个开源的任务调度框架,它允许程序员在 Java 应用程序中安排复杂的作业执行。Quartz 提供了丰富的 API 和配置选项,使得开发者能够灵活地定义作业和触发器,实现定时任务的自动化管理。 Quartz 的核心...

    quartz任务调度使用手册

    Quartz任务调度是一款开源的Java定时任务框架,广泛应用于企业级应用系统中,用于执行周期性的后台任务。这款工具提供了一种灵活的方式来安排和管理任务,使得开发者无需在业务代码中处理时间相关的逻辑,而是通过...

    spring整合quartz定时任务调度

    在IT行业中,定时任务调度是应用系统中常见且重要的功能之一,它允许程序在特定时间执行特定的任务。Spring框架作为Java领域广泛使用的轻量级框架,提供了与第三方库Quartz的整合,使得开发者能够轻松地在Spring应用...

    quartz1.5.0 任务调度demo

    Quartz是Java领域的一款强大的开源任务调度框架,广泛应用于企业级应用系统中,用于执行定时或周期性的任务。在这个"quartz1.5.0 任务调度demo"中,我们将会探讨如何使用Quartz实现任务的增删改功能,以及其三大核心...

    Spring Quartz 任务调度实例

    Spring Quartz 是一个强大的任务调度框架,它允许开发者在Java应用程序中定义和执行定时任务。结合Spring框架,可以方便地在企业级应用中实现复杂的时间触发逻辑。本实例提供了可以直接运行的任务调度解决方案,既...

    使用Quartz.net v3.0.7.0的任务调度

    Quartz.NET是一款开源的工作任务调度框架,广泛应用于.NET平台,版本v3.0.7.0带来了诸多增强和改进。本篇文章将详细讲解如何利用Quartz.NET v3.0.7.0进行任务调度,以及如何通过提供的示例项目QuartzDemo进行实践。 ...

    Quartz如何实现判断某个任务是否正在运行,在项目中用到的,已经测试过了

    Quartz是一款广泛应用于Java开发中的开源任务调度框架,它提供了强大的定时任务管理功能,支持复杂的调度策略和分布式部署。在实际项目中,有时我们需要判断一个Quartz任务是否正在运行,以便进行相应的操作,如避免...

    C# Quartz.Net定时任务操作明细、完整过程

    注意,所有任务调度器创建完成后,只需要调用一次`Start()`。 **注意事项**: - **异常处理**:由于Quartz.Net的单线程特性,`Execute`方法中的异常可能不会被编译器捕获。因此,建议对重要执行代码使用`try-catch`...

    Quartz(任务调度)使用培训

    Quartz是一个开源的任务调度库,其主要用途是让开发者能够轻松地安排在特定时间或根据特定规则运行代码的任务,也就是作业(Jobs)。Quartz能够与Java企业版(J2EE)和Java标准版(J2SE)应用程序集成,也可以独立...

    Java任务调度框架Quartz2.0.2教程实例源代码

    Java任务调度框架Quartz2.0.2是一个强大的开源任务调度库,被广泛应用于各种Java应用程序中,包括Web应用和企业级系统。Quartz允许开发者安排任务以在特定时间执行,提供灵活的时间触发器和可插拔的Job执行策略。在...

    定时任务quartz实现分组串行并行动态配置

    Quartz是一款广泛使用的开源作业调度框架,它允许开发者在Java应用程序中定义和执行定时任务。在实际应用中,我们可能需要根据业务需求动态地配置定时任务的执行方式,例如,某些任务可能需要串行执行,而其他任务则...

    C# 控制台Quartz定时任务.doc

    【Quartz定时任务】是Java领域的一个强大任务调度框架,但在C#中也有相应的实现,如标题所示,这里讨论的是C#控制台应用中使用Quartz.NET进行定时任务的实现。Quartz.NET允许开发者在应用程序中安排任务在特定时间...

Global site tag (gtag.js) - Google Analytics