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