EJB @Schedule 注解设置动态值

EJB @Schedule annotation set dynamic values

我在方法中添加了一个@Schedule 注释。

@Schedule(minute = "1", hour = "*", info="Every 1 minute")
public void getStandingOrdersTimer() {
        
}

这里的方法将 运行 每分钟每小时。我想使用变量传递分钟数。无需在注释中对其进行硬编码。我怎样才能做到这一点?

您需要使用 TimerService 创建一个定时器。

@Singleton
@Startup
@LocalBean
public class TimerBean {

    @Resource
    TimerService timerService;

    @PostConstruct
    public void init(){
        timerService.createIntervalTimer(new Date(), getMinute() * 60000
                        new TimerConfig("MyTimer", false));
    }

    private int getMinute(){
        //here your code to get the minute value from somewhere
    }

    @Timeout
    public void getStandingOrdersTimer() {
        
    }
}