1

Some method has been Annotated with @Scheduled(fixedDelay=/.../), how can I get that value from the database?
already have needed service and repository, just not sure how to apply that value here.

Alchnemesis
  • 449
  • 7
  • 22

1 Answers1

5

You can define a bean in a @Configuration class somewhere else in your project which reads the delay rate from the database:

@Bean
public Long myFixedDelay() {
   return myRepository.myDatabaseCallToGetDelay();
}

You can then reference this bean in your @Scheduled annotation using Spring EL:

@Scheduled(fixedDelayString = "#{@myFixedDelay}")
Plog
  • 8,475
  • 5
  • 33
  • 60
  • hmm, strange. I cannot call it that way, it requires for value to be (long) – Alchnemesis Jan 26 '18 at 07:49
  • 1
    Oh I realised I made I mistake. To do it this way you need to use fixedDelayString instead of fixedDelay. Ill update my answer – Plog Jan 26 '18 at 09:17