我有一个需要在特定时间执行的方法。我使用@Schedule注释来实现这一点。当执行该方法时,它会发送一封电子邮件。时间表有效,邮件在我想要的时间发送,但发送了两次,因此该方法以某种方式执行了两次。这是我的代码:
@Singleton
public class ScheduledClass{
@EJB
private SomeService someService;
@Schedule(hour = "17", minute = "10", persistent = false)
public void scheduledMethod(){
try{
//here i send the mail
}
}
}
我不确定是否由于 Singleton 注释而发生了执行两次的情况。有人可以帮忙吗?
在你的情况下,我想使用 Cron,类似的东西:
@EnableScheduling
public class ScheduledClass {
@Scheduled(cron = "0 10 17 * * *")
@Transactional
public void scheduledMethod(){
try{
//here i send the mail
}
}
}
如果您想检查 cron 的工作原理:https://crontab.cronhub.io