preciso criar uma rotina que execute de 40 em 40 minutos , o metodo ao ser executado dever ir ao banco e listar
alguns registros, o banco utilizado é o mysql e estou utilizando jpa 2.1 -eclipselink, o problema começa quado ele faz a primeira ida ao banco e lista os registros, após isso quando os registros são alterados no banco na listagem do metodo as alteraçoes não surte efeito e os registros continuam inalterados
1° o método para buscar no banco os registros
public List<Pessoa> listarTodos() {
try {
List<Pessoa> listar = new ArrayList<>();
listar = em.createQuery("SELECT p FROM Pessoa p ").getResultList();
return listar;
} catch (NoResultException e) {
e.printStackTrace();
}
return null;
}
2° método para listar os registros
public void teste() {
List<Pessoa> listar = new ArrayList<>();
listar = listarTodos();
for (int i = 0; i < listar.size(); i++) {
System.out.println(listar.get(i).getNome());
}
}
3° método que faz ser executado de tempos em tempos
public void rotina() throws InterruptedException {
TimerTask task = new TimerTask() {
public void run() {
teste();
}
};
Timer timer = new Timer();
timer.scheduleAtFixedRate(task, 0, 2 * 1000);
}
o que pode ser feito pra que isso funcione ?