Существует несколько способов создания запланированной задачи в Java EE.Я думаю, что вам больше подходит использование ManagedScheduledExecutorService .
@ApplicationScoped
public class PeriodicTask {
@Resource
ManagedScheduledExecutorService mses;
@Inject
@Config("period")
private int period;
public void startJobs() {
mses.scheduleAtFixedRate(this::task, 0, period, TimeUnit.MINUTES);
}
private void task() {
...
}
...
}
Таким образом, вы можете, например, ввести значение конфигурации period в зависимости от работысреда.Если вам не нужно планировать задачу для конкретной среды, у вас может быть другой параметр конфигурации, чтобы избежать вызова scheduleAtFixedRate метода.
Единственное, что ожидает сделать, это вызвать startJobs метод.