java - Spring 中的 Cron 表达式

标签 java spring quartz-scheduler

我有一个要求,根据一些数据库检查,每周在某个时间点发送邮件,并且它在以下配置下工作得很好。

<bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
    <property name="jobDetails">
        <list>              
            <ref bean="emailWeeklyNotification"/>
        </list>
    </property> 
    <property name="triggers">
        <list> 
            <ref bean="emailWeeklyTrigger"/>
        </list>
    </property>
</bean>

<bean id="emailWeeklyTrigger"   class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail" ref="emailWeeklyNotification" />  
    <property name="cronExpression" value="${email.weekly.sched}" /> 
</bean>

<bean id="emailWeeklyNotification" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">     
    <property name="targetObject" ref="emailService" />
    <property name="targetMethod" value="myMthod" />     
</bean>

${email.weekly.sched} 该值来自数据库,例如 "0 0 6 ? * MON"

emailService 是我的一个类,它具有此方法和其他一些占位符。

所以我的问题是,在这个表达式中写什么会破坏Spring的代码,所以我的调度程序方法不应该被调用,因为数据库中没有任何内容并且邮件仍在发送。

尽管这将是一个临时修复,因为我们有新代码,它在发送邮件之前检查集合的大小,但不在 PROD 中。

我尝试编写类似 "0 -1 17 ? * THU""0 56 17 ? * FUN" 但其部署本身失败。

请提出建议。

谢谢

最佳答案

org.springframework.util.StringUtils.CronSequenceGenerator 似乎无法让模式停止触发。

关于java - Spring 中的 Cron 表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31317914/

相关文章:

java - 使用 Spring 和 Hibernate 的嵌套事务

java - 两个独立 Web 应用程序之间的身份验证

java - 无法删除 Camel Quartz 路线

java - 阻止 "java.util.TimeZone"夏令时

java - 如何给文档中的每个对象一个唯一的ID?

spring - 如何从监听器发送回复

java - 在 spring boot 中创建自定义查询时出错

quartz-scheduler - 使用 Quartz.NET 安排任务每天在特定时间运行

java - JaCoCo报告格式

java - JPA复合键问题: Column 'Person_ID' cannot be null