Я изучаю с использованием @Scheduled по фиксированной ставке, где в некотором настраивается обстоятельствах, запланированное задание никогда не должно запускаться.Можно ли назначить @Scheduled периодом, представляющим «никогда» (весной)?
документация не упоминает это, но значения по умолчанию для fixedDelay()
и fixedDelayString()
являются -1
и ""
соответственно. Могут ли они использоваться для надежного обеспечения того, чтобы плановый метод не срабатывал?
О, это позор - спасибо, что заглянул в него. Я думаю, что одно возможное обходное решение, не упомянутое в связанном вами сообщении, может заключаться в том, чтобы установить чрезвычайно высокие значения (например, max 'long') для' initialDelay' и 'fixedDelay', чтобы они никогда не достигались. Это может сработать на практике, но просто кажется, что это неправильно, и прискорбно, что Spring не предоставил вариант «никогда». –
@SteveChambers Да, это похоже на хак. Плюс, если вы хотите получить значение из конфигурации и установить его с помощью 'fixedDelayStr', он будет анализироваться с использованием' Integer.parseInt' не 'Long.parseLong', поэтому установка его на максимальное значение long не удалась :) ... Я расскажу об этом позже в Spring JIRA. –
О, боже, кажется, что 'fixedDelayStr' не может быть и речи для этого метода, тогда как максимальное целое число равно 2147483647, что (если мои расчеты с использованием Google правильны) в миллисекундах составляет всего 3 с половиной недели - бит отличается от 292471208 лет, я думаю, что 'long' позволит! –