Может кто-нибудь объяснить, пожалуйста, о сроках, упомянутых в lockAtLeastFor = "PT1M45S", lockAtMostFor = "PT2M" что такое PT здесь - PullRequest
1 голос
/ 28 апреля 2020

Может ли кто-нибудь объяснить, пожалуйста, о сроках, определенных в lockAtLeastFor и lockAtMostFor. что такое PT1M45S и какие другие параметры он может принимать.

  @Scheduled(cron = "0 0/2 * * * *")
  @SchedulerLock(name = "TaskScheduler_scheduledTask", lockAtLeastFor = "PT1M45S", lockAtMostFor = "PT2M")
  public void performJob()
  {
     System.out.println("executed");
  }

Ответы [ 4 ]

2 голосов
/ 28 апреля 2020

Это формат продолжительности ISO-8601 . P обозначает период и сопровождается (необязательно) продолжительностью в годах (Y), месяцах (M), неделях (W) и днях (D). T обозначает время и сопровождается одним или несколькими часами (H), минутами (M) и (дробными) секундами (S).

См. Также javado c из Duration.parse. Формат продолжительности, поддерживаемый Java, не поддерживает Y, M и W, как указано в ISO-8601, но вместо этого используется упрощенный формат, такой как PnDTnHnMn.nS.

1 голос
/ 28 апреля 2020

Это формат ISO 8601 для длительности .

Похоже, вы используете ShedLock . Согласно do c он может принимать длительность в мс.

/ ** * Блокировка будет удерживаться как минимум для X миллис. Может использоваться, если вам действительно нужно выполнить задачу * не более одного раза за определенный период времени. Если длительность задачи меньше разности часов между узлами, задача теоретически может быть выполнена более одного раза (один узел за другим). Установив этот параметр, вы можете быть уверены, что блокировка * будет сохраняться как минимум в течение заданного периода времени. * /

long lockAtLeastFor () по умолчанию -1;

0 голосов
/ 28 апреля 2020

Это указано в документации ShedLock

Спецификация продолжительности

  • длительность + единица - 1 с, 5 мс, 5 м, 1 д (с версии 4.0.0)
  • длительность в мс - 100 (только интеграция с Spring)
  • ISO-8601 - PT15M (см. документацию Duration.parse ())

https://github.com/lukas-krecan/ShedLock#duration - спецификация

0 голосов
/ 28 апреля 2020

Документация гласит:

Может быть либо временем с суффиксом, например 10 с, либо продолжительностью ISO8601, как описано в {@link java .time.Duration # parse (CharSequence)}, например PT30S. .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...