- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
spring-report.xml
<bean id="scheduleReportEmailJob"
class="org.springframework.scheduling.quartz.JobDetailBean">
<property name="jobClass"
value="schedule.ReportQuartzJobBean"/>
<property name="jobDataAsMap">
<map>
<entry key="reportService" value-ref="reportService"/>
</map>
</property>
</bean>
<bean id="cronEmailTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail" ref="scheduleReportEmailJob"/>
<property name="cronExpression" value="0 0,15,30,45 * ? * MON-FRI"/>
</bean>
<bean id="scheduler" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers">
<list>
<ref bean="cronEmailTrigger"/>
</list>
</property>
<property name="quartzProperties">
<props>
<prop key="org.quartz.scheduler.instanceName">Reports</prop>
<prop key="org.quartz.scheduler.instanceId">FirstInstance</prop>
<prop key="org.quartz.scheduler.rmi.export">false</prop>
<prop key="org.quartz.scheduler.rmi.proxy">false</prop>
<prop key="org.quartz.threadPool.class">org.quartz.simpl.SimpleThreadPool</prop>
<prop key="org.quartz.threadPool.threadCount">1</prop>
<prop key="org.quartz.jobStore.class">org.quartz.simpl.RAMJobStore</prop>
<prop key="org.quartz.scheduler.jobFactory.class">org.quartz.simpl.SimpleJobFactory</prop>
</props>
</property>
</bean>
private static BeanFactory factory = new ClassPathXmlApplicationContext("spring-report.xml");
当我启动tomcat时
2011-02-07 06:46:57,005(ISO8601) [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Invoking afterPropertiesSet() on bean with name 'scheduler'
2011-02-07 06:46:57,083(ISO8601) [main] INFO org.quartz.core.SchedulerSignalerImpl - Initialized Scheduler Signaller of type: class org.quartz.core.Schedu
lerSignalerImpl
2011-02-07 06:46:57,083(ISO8601) [main] INFO org.quartz.core.QuartzScheduler - Quartz Scheduler v.1.6.3 created.
2011-02-07 06:46:57,084(ISO8601) [main] INFO org.quartz.core.QuartzScheduler - JobFactory set to: org.quartz.simpl.SimpleJobFactory@3dd510be
2011-02-07 06:46:57,085(ISO8601) [main] INFO org.quartz.simpl.RAMJobStore - RAMJobStore initialized.
2011-02-07 06:46:57,085(ISO8601) [main] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler 'Reports' initialized from an externally provided prop
erties instance.
2011-02-07 06:46:57,085(ISO8601) [main] INFO org.quartz.impl.StdSchedulerFactory - Quartz scheduler version: 1.6.3
2011-02-07 06:46:57,087(ISO8601) [main] INFO org.quartz.core.QuartzScheduler - JobFactory set to: org.springframework.scheduling.quartz.AdaptableJobFactor
y@206fa7ec
2011-02-07 06:46:57,094(ISO8601) [main] INFO org.springframework.scheduling.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now
2011-02-07 06:46:57,094(ISO8601) [main] INFO org.quartz.core.QuartzScheduler - Scheduler Reports_$_FirstInstance started.
2011-02-07 06:46:57,139(ISO8601) [main] DEBUG org.springframework.beans.factory.support.DefaultListableBeanFactory - Finished creating instance of bean 'sc
heduler'
2011-02-07 06:46:57,140(ISO8601) [main] DEBUG org.springframework.context.support.ClassPathXmlApplicationContext - Publishing event in context [org.springf
ramework.context.support.ClassPathXmlApplicationContext@4275b35]: org.springframework.context.event.ContextRefreshedEvent[source=org.springframework.context.s
upport.ClassPathXmlApplicationContext@4275b35: display name [org.springframework.context.support.ClassPathXmlApplicationContext@4275b35]; startup date [Mon Fe
b 07 06:46:55 EST 2011]; root of context hierarchy]
在我启动 tomcat 一段时间后,作业会触发两次,如果我从工作目录和分解的 war 文件中删除所有缓存并重新部署,它只会触发一次作业。有任何想法吗 ?也许缓存 bean?
@jhouse 重新部署似乎是我在重新部署后粘贴线程转储的问题,我有什么选择?
@jhouse
"Reports_QuartzSchedulerThread"prio=10 tid=0x00002aab0c10b000 nid=0x1dc0 in Object.wait() [0x0000000044501000] java.lang.Thread.State:TIMED_WAITING(在对象监视器上) 在 java.lang.Object.wait( native 方法) - 等待 <0x00002aaac9e6d298>(java.lang.Object) 在 org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:433) - 锁定 <0x00002aaac9e6d298>(java.lang.Object)
"Reports_Worker-1"prio=10 tid=0x00002aab0c10a800 nid=0x1dbf in Object.wait() [0x0000000044400000] java.lang.Thread.State:TIMED_WAITING(在对象监视器上) 在 java.lang.Object.wait( native 方法) - 等待 <0x00002aaac9e4c980>(一个 org.quartz.simpl.SimpleThreadPool$WorkerThread) 在 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - 锁定 <0x00002aaac9e4c980>(一个 org.quartz.simpl.SimpleThreadPool$WorkerThread)
“Reports_QuartzSchedulerThread”prio=10 tid=0x00002aab0841b800 nid=0x1da3 in Object.wait() [0x0000000041715000] java.lang.Thread.State:TIMED_WAITING(在对象监视器上) 在 java.lang.Object.wait( native 方法) - 等待 <0x00002aaac4fc71d0>(java.lang.Object) 在 org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:433) - 锁定 <0x00002aaac4fc71d0>(java.lang.Object)
"Reports_Worker-1"prio=10 tid=0x00002aab091a3000 nid=0x1da2 in Object.wait() [0x0000000041614000] java.lang.Thread.State:TIMED_WAITING(在对象监视器上) 在 java.lang.Object.wait( native 方法) - 等待 <0x00002aaac4e21b10>(一个 org.quartz.simpl.SimpleThreadPool$WorkerThread) 在 org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:519) - 锁定 <0x00002aaac4e21b10>(一个 org.quartz.simpl.SimpleThreadPool$WorkerThread)
如果我停止服务器,然后检查线程转储它是否为空,然后启动(不清理)服务器,threadump 有重复的线程在运行
最佳答案
很好奇,您的 web.xml 中是否也配置了 spring-report.xml
?像这样?
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath:spring-report.xml
</param-value>
</context-param>
我问的原因是因为你在上面发表了这个声明:-
private static BeanFactory factory = new ClassPathXmlApplicationContext("spring-report.xml");
如果您在 web.xml 和 Java 代码中都有 spring-report.xml
,那么是的,它可能会触发作业两次。
关于java - quartz 发射两次 bean 缓存问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4921100/
有什么区别 和 您能解释一下这两者之间有什么区别吗? 最佳答案 它是一个 XML 命名空间,用于分隔可能存在冲突的元素名称,因此没有真正的区别。 XML Namespaces 关于java -
我刚刚浏览了两个 Web 应用程序,在两个项目的“applicationContext.xml”文件中都有一个标记 ... 另一个是 ... 谁能给我解释一下有什么区别吗? 最佳答案 没有语
我一直在尝试了解 WebSphere Commerce 中的 Java bean,但我真的很困惑。请帮帮我。我需要知道: What is the difference between EntityBe
自从我们更新到 grails 2.0.1(从 2.0.0 开始)以来,通过 bean 字段显示的所有 bean 都错误地显示为“withBean”字段的第一个属性。在我下面发布的示例中,所有 [fir
我有一个 bean,我将另一个 beanlist 放入其中,并且我想访问该内部 bean。 我的第一个 Bean 是: public class FirstDTO { private String F
我正在尝试将 CSS 和 JS 添加到 spring MVC 项目中的 JSP 页面,以便我在 dispatcher-servlet.xml 中包含了 js/css 文件夹的引用,如下所示:
当我将请求传递给 RestController 时,出现以下错误。 org.springframework.beans.factory.xml.XmlBeanDefinitionStoreExcept
我看到很多示例将 bean 标记为实体 bean (@Entity) 和命名 bean (CDI),以避免创建 2 个类(托管 bean 和实体 bean)并利用 Bean 验证以便可以执行验证在客户
在我的理解中, session 总是意味着有状态。考虑 servlet session 对象, 想想 cookie。如果 session 是无状态的,我认为我们根本不需要 session 。 在jee
我完全是Spring框架的初学者。我当时正在玩一个创建对象实例的示例。因此需要您的帮助! 看看这个例子: MainApp.java: import org.springframework.contex
这个问题在这里已经有了答案: What is a JavaBean exactly? (23 个回答) 关闭 7 年前。 我已经阅读了有关 EJB、Java Beans 的内容,但是我仍然对“bea
我刚开始使用 Spring-Framework,实际上我正在使用 spring-boot 库。我有以下问题: 我知道在 @Configuration 类中使用 @Bean 注册的 bean 默认是单例
我对下面提到的场景中使用Spring Framework时会创建的实例数量有疑问: bean配置是这样的 or 默认情况下,bean "a"有 singleton scope .所以
在我的 Spring-Module.xml 中,我有两个 bean: ... ... 我像这样实例化我的类: Applicat
@Autowired private Map departments; 我的 spring 配置文件 只要使用 @Autowired 需要日期,它就可以正常工作 同样, 如何使用没有属性
我已经为 ComboBox 设置了 ContainerDataSource this.comboBox.setContainerDataSource(container)。这个容器是一个 BeanIt
为了支持流畅的编程风格,我最近修改了我们的 Java Beans setter 方法以返回 Bean 类。但是现在 Java Beans Activation Framework (rel 1.1)
有人可以告诉我在我的 ApplicationContext 中我必须使用 beans:bean 而不是 bean 的什么以及如何修复它。
我有如下配置: batch:job id="reconciliationJob" job-repository="jobRepository" restartable="true" 在应用程序上下文启
我已经为 Test_flow 创建了简单的测试套件,但是当我尝试运行该流程时出现错误。 java.lang.RuntimeException: org.mule.api.config.Configur
我是一名优秀的程序员,十分优秀!