Запланируйте Cron как работу в EJB - PullRequest
2 голосов
/ 16 апреля 2019

У меня есть следующий EJB, который планирует MyJob с фиксированной задержкой.

@Startup
@Singleton
public class Scheduler {

    static final long INITIAL_DELAY = 0;
    static final long PERIOD = 5;

    @Resource
    ManagedScheduledExecutorService scheduler;

    @PostConstruct
    public void init() {
        this.scheduler.scheduleWithFixedDelay(new MyJob(), INITIAL_DELAY, PERIOD, TimeUnit.SECONDS);
    }

}

Я бы хотел запланировать эту работу с помощью cron-подобного выражения, как мне реализовать это без использования Quartz или какой-либо другой инфраструктуры?

EDIT: Чтобы быть более конкретным - я хотел бы, чтобы cron-подобное выражение было управляемым свойством. Я хотел бы создать планировщик динамически, чтобы мне не приходилось создавать несколько компонентов для нескольких пакетных заданий.

1 Ответ

3 голосов
/ 16 апреля 2019

Вы можете использовать @Schedule API:

@Schedules({
            @Schedule(month = "5", dayOfMonth = "20-Last", minute = "0", hour = "8"),
            @Schedule(month = "6", dayOfMonth = "1-10", minute = "0", hour = "8")
    })
    private void plantTheCorn() {
        // Dig out the planter!!!
    }

См. Этот вопрос и ответы: Иметь расписание EJB с «синтаксисом crontab»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...