EJB Schedulati su Glassfish

A volte si rende necessario avere un EJB che lavori su schedulazione, ad esempio un qualcosa che pulisca una serie di tabelle temporanee, oppure una pulizia di alcune tabelle di logging, il cleanup di un filesystem e via dicendo.

Su Glassfish tutto ciò è facilissimo, senza ricorrere a cron o task schedulati su windows con eventuali wrapper java.

Come prima cosa si esegue il deploy dell’applicazione:
/opt/glassfishv3/glassfish/lib/install/applications/ejb-timer-service-app.war

Per controllare che sia tutto ok basta puntare il browser su (assumendo che Glassfish stia girando in locale):

http://localhost:8080/ejb-timer-service-app/timer

Ed ecco il risultato:

Ora non ci resta che chiamare la risorsa secondo le annotazioni EJB 3.0 (@Resource):

package example.ejb;

import javax.ejb.Schedule;

@Stateless
public class example implements exampleLocal {

   @Schedule(second = "00", minute = "*/15", hour = "*")
   @Override
   public void sendSalesScheduler() {
        vostroMetodo();
    }
}

Questo EJB ad esempio gira ogni 15 minuti.

Leave a Reply

Your email address will not be published. Required fields are marked *