Если цель состоит в том, чтобы включить / отключить запланированные задания с помощью флага, я бы оставил это простым и сделал бы код запуска задания обусловленным этим флагом, например:
@Scheduled(cron = "#{your.cron.expression}")
public void runJob() {
boolean enabled = ... // dynamically load the flag as needed
if (enabled) {
// run the job
}
}
Это не требует изменить выражение cron на лету, чтобы включить / отключить расписание. Если флаг имеет значение false, задание не будет выполнено в последующих расписаниях, пока оно не будет повторно активировано.
Кстати, kubernetes предоставляет функцию, аналогичную приостановить / возобновить задания cron (это может быть сделано на лету путем исправления спецификации задания cron).