У меня есть метод, который следует запускать регулярно. При вызове с аннотацией @Scheduler я получаю следующую ошибку:
Unexpected error occurred in scheduled task. org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: org.postgresql.util.PSQLException: ERROR: relation "my_table" does not exist
Однако прямой вызов того же метода через конечную точку работает хорошо.
Не работает:
@Service
public class MyService {
private final MyRepository repository;
public MyService(MyRepository repository) {
this.repository = repository;
}
@Scheduled(fixedDelay = 3000)
public void updateDatabase() {
Foo foo = repository.findOne(id); // Throws exception
// ...
}
}
Работает:
@GetMapping("/test")
public ResponseEntity test() {
myService.updateDatabase();
// ...
}
@Service
public class MyService {
private final MyRepository repository;
public MyService(MyRepository repository) {
this.repository = repository;
}
//@Scheduled(fixedDelay = 3000)
public void updateDatabase() {
Foo foo = repository.findOne(id); // No exception
// ...
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -scheduled
Доступ к репозиторию в @Scheduled ⇐ JAVA
Программисты JAVA общаются здесь
1736773028
Anonymous
У меня есть метод, который следует запускать регулярно. При вызове с аннотацией @Scheduler я получаю следующую ошибку:
Unexpected error occurred in scheduled task. org.springframework.dao.InvalidDataAccessResourceUsageException: could not extract ResultSet; SQL [n/a]; nested exception is org.hibernate.exception.SQLGrammarException: could not extract ResultSet
Caused by: org.postgresql.util.PSQLException: ERROR: relation "my_table" does not exist
Однако прямой вызов того же метода через конечную точку работает хорошо.
Не работает:
@Service
public class MyService {
private final MyRepository repository;
public MyService(MyRepository repository) {
this.repository = repository;
}
@Scheduled(fixedDelay = 3000)
public void updateDatabase() {
Foo foo = repository.findOne(id); // Throws exception
// ...
}
}
Работает:
@GetMapping("/test")
public ResponseEntity test() {
myService.updateDatabase();
// ...
}
@Service
public class MyService {
private final MyRepository repository;
public MyService(MyRepository repository) {
this.repository = repository;
}
//@Scheduled(fixedDelay = 3000)
public void updateDatabase() {
Foo foo = repository.findOne(id); // No exception
// ...
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79352256/acces-to-repository-within-scheduled[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия