Creating a scheduler in JEE6 is very simple. Just use @Schedule annotation. Here is an example of a simple bean logging all 30 seconds.
import javax.ejb.Schedule; import javax.ejb.Stateless; import javax.inject.Inject; import org.jboss.logging.Logger; /** * @author manuel * */ @Stateless public class ApplicationScheduler { @Inject private Logger log; /** * Do something when fired. @Schedule can handle cron syntax. Default * values: * <ul> * <li>hour=0</li> * <li>minute=0</li> * <li>second=0</li> * <li>dayOfMonth=*</li> * <li>month=*</li> * <li>dayOfWeek=*</li> * <li>year=*</li> * <li>timezone="" - uses container tz if not specified here; column TZ of * http://en.wikipedia.org/wiki/List_of_tz_database_time_zones</li> * <li>info=""</li> * <li>persistent=true</li> * </ul> */ @Schedule(hour = "*", minute = "*", second = "*/30", persistent = false, timezone = "Europe/Vienna", info = "some info about this timer") public void backgroundProcessing() { log.debug("some background work"); } }