Вы можете использовать SpEL в своей аннотации, например:
@Scheduled(fixedRateString ="#{new Long('${keepAlive.timer}') * 1000 * 3600}")
, чтобы вычислить выражение. Итак, keepAlive.timer будет количеством часов.
Но на мой взгляд это было бы некрасивым решением. Я бы предпочел поместить его в свойствах, как у вас сейчас, и просто добавить комментарий вроде:
# 24 hours is: 1000 * 3600 * 24
keepAlive.timer=86400000
Другой способ использовать часы - использовать атрибут cron , который дает вам больше гибкость, но перед использованием может потребоваться некоторое изучение:
В вашем коде:
@Scheduled(cron = "${keepAlive.timer}")
и выражение cron в ваших свойствах - например, например:
keepAlive.timer="*/60 00 21 * * ?"
Это будет запускаться каждый день @ 21.00
Обратите внимание на это «* / 60», оно должно также принимать здесь «0», но в моем случае это не