由于cron表达式,调度程序未运行

时间:2018-11-08 12:42:47

标签: spring scheduled-tasks

我正在使用Spring 3.0.2版本来运行Java / Flex应用程序。 任务是“每年下午12:00,我都需要将数据库中的列值重置为零”。但是调度程序未执行配置的方法。

但是,如果我将玉米表达方式更改为其他形式,例如:每运行50秒运行每个调度程序,则效果会很好。

下面是在属性文件中配置的cron表达式。

cron1.expression = 0 0 0 1 1 ?

在应用程序上下文中进行配置

<task:annotation driven/>

<util:properties id="javaScheduler" location="WEB-INF/javaScheduler.properties"/>

<context:property-placeholder properties-ref="javaScheduler"/>

<task:scheduled-tasks>
    <task:scheduled ref="schedulerDAO" method="updateSampleRegistrationSeqno" 
    cron="#{javaScheduler['cron1.expression']}"/>
</task:scheduled-tasks>

配置的方法:

public void updateSampleRegistrationSeqno() throws Exception
{
    try
    {
        logging.info("<<<<<<<<<<<<<<<<<<<----Updating sample registration series code in Seqnotransgenerator of table name All ---->>>>>>>>>>>>>>>>>>");

        //String sp = "exec dbo.sp_SequenceUpdateNewYear";

        getJdbcTemplate().execute("update SequencenoTransGenerator set nsequenceno = 0 where stablename = 'All'");

    }

    catch(Exception e)
    {
        logging.info("Exception occured at updateSampleRegistrationSeqno :------->"+e.getLocalizedMessage());
    }

}

1 个答案:

答案 0 :(得分:0)

在您的应用程序上下文中添加这两行:

<context:property-placeholder location="classpath:/properties/app.properties"/> 

<context:property-placeholder location="file:/properties/app.properties"/>

<task:annotation-driven></task:annotation-driven>

计划任务:

@Scheduled(cron = "${cronexp}")
public void executeTask() {
    //execute sql script

}

在您的属性文件中添加此cron表达式:

cronexp=0 0 0 1 1 ? 

对我有用。

注意:您应该在该位置提供属性路径