2012-07-14 12 views
16

que me gustaría tratar de utilizar la anotación @Schedule de la siguiente manera:anotación @Schedule salen cada pocos minutos (o segundos)

public class MyTestServlet extends HttpServlet { 
    private static JcanLogger LOG = JcanLoggerFactory.getLogger(ServiceTestServlet.class); 

    @EJB CronService cronService; 

    public void service(HttpServletRequest req, HttpServletResponse resp) throws .... { 
    .... 
    cronService.iLive(); 
} 
--- 
    @Local // because the ejb is in a servlet (there is no other jvm) 
public interface CronService { 

    public void iLive(); 
    public void runsEveryMinute(); 
} 
--- 
@Singleton 
public class CronServiceBean implements CronService { 
    private static final JcanLogger LOG = JcanLoggerFactory.getLogger(CronServiceBean.class); 

    @Schedule(minute="*") 
    public void runsEveryMinute() { 
     LOG.info(" runs EveryMinute "); 
    } 

    public void iLive() { 
     LOG.info("iLive"); 

    } 
--- 
LOG 
... 
CronServiceBean:34 ] iLive 

Basado en el registro, el CronService vivo y bien, pero el la tarea programada 'runsEveryMinute' no funciona.

¿Cómo debería funcionar con una tarea programada de EJB?

Respuesta

51

Como por el Javadoc para la @Schedule anotación, los valores predeterminados son:

  • * para todos los campos excepto hora, minuto, y segundo; y
  • 0 por hora, minuto y segundo, de forma predeterminada.

Al especificar minute="*" y dejando hora a su valor predeterminado de 0, se solicita que el plazo del temporizador cada minuto después de la medianoche durante una hora (es decir, 00:00, 00:01, 00:02, ..., 00:59) y luego no hasta el día siguiente. En su lugar, utilice:

@Schedule(hour="*", minute="*") 

Para ejecutar cada pocos segundos (por ejemplo, 10 segundos), se puede utilizar un cron -como sintaxis:

@Schedule(hour = "*", minute = "*", second = "*/10", persistent = false) 

Por defecto, el planificador de eventos persiste. El ajuste persistent = false evitará que se acumulen con el tiempo, si así lo desea.

Cuestiones relacionadas