Как включить задание @Scheduled по профилю весной?

Как включить запланированные задания только в определенных профилях?

псевдокод:

@Scheduled(cron = "${job.cron}")
@Profile("prod")
public void runJob() {

}

Это возможно?

Ответ 1

У вас должен быть один компонент для профиля:

@Component
@Profile("prod")
public class ProdJob {

    @Scheduled(cron = "${job.cron}")
    public void runJob() {

    }

}

@Component
@Profile("beta")
public class BetaJob {

    @Scheduled(cron = "${job.cron}")
    public void runJob() {

    }
}