Одним из решений этой проблемы было бы создание объекта, представляющего параметры, и при этом выполнении через 5 минут получить этот объект и использовать внутреннее состояние в качестве представления параметров. Вы должны убедиться, что MyEventService содержит ссылку на событие перед выполнением каждые 5 минут. Без дополнительного вклада в исходное сообщение невозможно узнать, как / когда вы это делаете.
Если параметры никогда не меняются, я предлагаю сделать службу неизменной, удалить класс событий и просто предоставить значения через свойства, используя @Value.
class Event {
private final String myString;
// constructor, getter
}
@Service
public class MyEventService {
private Event event;
// constructor, setter, getter
}
class MyScheduledTask {
@Autowired
private MyEventService eventService;
@Scheduled(fixedDelay = 300_000)
public void execute() {
Event event = eventService.getEvent();
if (event == null) {
throw new IllegalStateException("No event to process.");
}
// process event
}
}