Juni 1st, 2006
Timer in SessionBeans
Mit Hilfe des TimerServices können in SessionBeans zeitverzögerte oder auch wiederholte Aufgaben gelöst werden. Durch den J2EE 5 Standard, auch bekannt als EJB3, kann dies sogar mit sehr wenigen Handgriffen erledigt werden. Folgender Code implementiert ein SessionBean mit einem sekündlich wiederholenden Timer:
SessionBean-Interface:
public interface TimerTest { public void runTimer(); }
SessionBean-Klasse:
import java.util.Date; import javax.annotation.Resource; import javax.ejb.Local; import javax.ejb.Stateless; import javax.ejb.Timeout; import javax.ejb.Timer; import javax.ejb.TimerService; @Stateless @Local(TestTimer.class) public class TestTimerBean implements TestTimer { @Resource private TimerService timer; public void runTimer() { timer.createTimer(new Date(System.currentTimeMillis() + 1000), 1000, “test”); System.out.println(“started timerbean”); } @Timeout public void timeout(Timer timer) { System.out.println(“timeout “ + timer.getInfo()); } }