Scheduler blokowanie

0
@Scheduled(fixedRate = 1000)
void doSomething() {}
  1. Czy w takim przypadku dla każdego wywołania tworzy się nowy wątek?
  2. Czy metody oznaczone przez @Scheduled są wykonywane asynchronicznie czy należy dodać @Async aby takimi się stały?
  3. Co się stanie gdy w doSomething() zostanie wykonany task X, który będzie trwał np. 1h? Czy wszystkie taski wywołane po nim będą musiały czekać aż się zakończy?
    Z góry dzięki za odpowiedzi
1

Ta anotacja to abstrakcja dla java.util.concurrent.Executor które chodzi sobie pod spodem.

  1. W konfiguracja możesz ustawić sobie ile wątków będzie miała pula.
  2. To czy będzie asynchroniczne zależy od ustawienia.
  3. Zależy od ustawienia.

Ogólnie polecam dokumentację: https://docs.spring.io/spring/docs/current/spring-framework-reference/integration.html#scheduling

1 użytkowników online, w tym zalogowanych: 0, gości: 1