当前位置: 首页 > 知识库问答 >
问题:

石英cron作业未启动

马华茂
2023-03-14

我正在使用quartz调度器来调度一个Spring批处理作业。应用程序启动时没有任何异常,但它从不激发任何作业。

    2015-02-10 19:14:45  INFO   context.support.XmlWebApplicationContext - Bean 'jobRegistry' of type [class org.springframework.batch.core.configuration.support.MapJobRegistry] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying) 
2015-02-10 19:14:45  INFO   jdbc.datasource.DriverManagerDataSource - Loaded JDBC driver: com.mysql.jdbc.Driver 
2015-02-10 19:14:45  INFO   launch.support.SimpleJobLauncher - No TaskExecutor has been set, defaulting to synchronous executor. 
2015-02-10 19:14:46  INFO   context.support.DefaultLifecycleProcessor - Starting beans in phase 2147483647 
2015-02-10 19:14:46  INFO   scheduling.quartz.SchedulerFactoryBean - Starting Quartz Scheduler now 
2015-02-10 19:14:46  INFO   web.servlet.DispatcherServlet - FrameworkServlet 'mvc-dispatcher': initialization completed in 2155 ms 
<bean id="jobLauncher"
        class="org.springframework.batch.core.launch.support.SimpleJobLauncher">
        <property name="jobRepository" ref="jobRepository" />
    </bean>

    <bean
        class="org.springframework.batch.core.configuration.support.JobRegistryBeanPostProcessor">
        <property name="jobRegistry" ref="jobRegistry" />
    </bean>

    <bean id="jobRepository"
        class="org.springframework.batch.core.repository.support.JobRepositoryFactoryBean"
        p:dataSource-ref="dataSource" p:transactionManager-ref="transactionManager">
        <property name="databaseType" value="reconConfig!{batch.databaseType}" />
        <property name="isolationLevelForCreate" value="ISOLATION_DEFAULT" />
    </bean>

    <bean id="mapJobRepository"
        class="org.springframework.batch.core.repository.support.MapJobRepositoryFactoryBean"
        lazy-init="true" autowire-candidate="false" />

    <bean id="jobOperator"
        class="org.springframework.batch.core.launch.support.SimpleJobOperator"
        p:jobLauncher-ref="jobLauncher" p:jobExplorer-ref="jobExplorer"
        p:jobRepository-ref="jobRepository" p:jobRegistry-ref="jobRegistry" />

    <bean id="jobExplorer"
        class="org.springframework.batch.core.explore.support.JobExplorerFactoryBean"
        p:dataSource-ref="dataSource" />

    <bean id="jobRegistry"
        class="org.springframework.batch.core.configuration.support.MapJobRegistry" />

    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
        <property name="dataSource" ref="appDataSource" />
    </bean>


    <bean class="org.springframework.batch.core.scope.StepScope" />



    <bean id="reconConfigPlaceholderProperties"
        class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="ignoreUnresolvablePlaceholders" value="true" />
        <property name="location" value="classpath:batchDb.properties" />
        <property name="placeholderPrefix" value="reconConfig!{" />
        <property name="placeholderSuffix" value="}" />
    </bean>
</beans>

它运行得很成功,但经过更多的开发后,它停止了工作。我无法弄清楚我到底改变了什么配置导致了这一点。

有谁可以建议检查点在使用“JobRepositoryFactoryBean”,如果我没有或问题在其他地方。

共有1个答案

白云
2023-03-14

如果这是作业调度的全部配置,我相信您完全忽略了Cron调度部分······

 <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
 <property name="triggers">
  <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean">
    <property name="jobDetail" ref="jobDetail" />
    <property name="cronExpression" value="*/10 * * * * ?" />
 </bean>
</property>
</bean>

请在这里阅读spring doc和quartz调度部分。

 类似资料:
  • 是否可以添加/删除/修改在Quartz Spring Boot中动态安排的作业(在运行时),由使用我的门户的最终用户。由于计划无法从外部访问,我不知道有什么办法。基本上,我需要将所有的时间表信息存储到数据库中并访问它们。Im构建的门户将被大量用户使用,实现这一目标的正确解决方案是什么? 否则我可以像下面这样使用cron吗 每5 mns扫描一次作业以实现此目的。

  • 谁能解释一下为什么这里有不兼容的地方?

  • 使用spring 2.5和quartz 1.6.2,我一直试图每分钟触发一个计划任务 我的xml文件是: 我的代码是:

  • 我正在使用和以及集群模式下的oracle db,我正在使用所有quartz api,因为我面临spring支持的quartz api的问题。 我的作业类中有一些依赖项没有初始化,我在调度程序上下文中传递了这些依赖项,然后它就开始工作了。 问题是我的cron表达式是每5分钟运行一次

  • 我有一个Sprint Boot-Java8应用程序,它有一个quartz作业,我在启动时配置该作业并设置一个时间表。该作业按照计划自动运行,这与您对quartz作业的期望一样。然而,现在我希望能够允许用户通过点击前端上的一个按钮手动触发这些作业,而不会扰乱该作业的正常调度。这是我所有的相关档案。 但每次运行应用程序并点击控制器的方法时,都会在控制台中出现以下错误: 我到底做错了什么?如何使此作业按