Является ли @Scheduled поточно-ориентированным? - PullRequest
0 голосов
/ 02 мая 2020

У меня есть интерфейс MongoRepository:

public interface MyRepository extends MongoRepository<MyDocument,String> {}

и аннотированный класс @Component, который служит потоком, используя @Scheduled:

@Component
@Scope("prototype")
@EnableAsync
public class MyThread {
     @Autowired
     private MyRepository myRepository;

     @Scheduled(fixedRate = 5000)
     @Async
     public void saveCurrentTime()
     {
        myRepository.save(someTimeHere);
     }

}

Мой вопрос:

Является ли этот @Scheduled метод потокобезопасным? Основная идея здесь заключается в создании различных MyThread bean-компонентов (@Scope("prototype")), которые сохранят текущее время в No SQL. Но что произойдет, если 2 из этих «потоков» вызовут метод myRepository.save() одновременно? Должен ли я обрабатывать синхронизацию самостоятельно или она уже обработана этой аннотацией?

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