Используя @schedule в таймере EJB, не в состоянии передать детали расписания из базы данных
Используя @schedule в таймере EJB, я хочу передать детали расписания из базы данных. но это не позволяет передавать значения. Что я должен делать. В @timeout я также не могу автоматически запустить поток во время запуска сервера. @Postconstruct не работает.
1 ответ
Возможно, вам придется использовать @Timeout, @Singleton, @Startup и @ConcurrencyManagement
@Singleton(name = "...", mappedName = "")
@Startup
@ConcurrencyManagement(ConcurrencyManagementType.BEAN) // this is threadsafe!!!
public class .......
Введите TimerService для настройки
@Resource
private TimerService timerService;
Внедрить EntityManager для доступа к базе данных
@PersistenceUnit(..)
private EntityManager entityManager
Используйте @Timeout вместо @Schedule
@Timeout
void timer() { .... }
Настройте таймер
@PostConstruct
void postConstruct() {
entityManager.createQuery(....);
.
.
timerService.createIntervalTimer(....);
}
кроме использования EntityManager, это работает на нашем сайте.