Schedule方法执行两次

问题描述 投票:0回答:1

我有一个需要在特定时间执行的方法。我使用@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 注释而发生了执行两次的情况。有人可以帮忙吗?

java singleton scheduled-tasks ejb java-ee-8
1个回答
0
投票

在你的情况下,我想使用 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

© www.soinside.com 2019 - 2024. All rights reserved.