expirationTimerTask = sipContext.getSipApplicationSessionTimerService().schedule(expirationTimerTask, deltaMilliseconds, TimeUnit.MILLISECONDS);
@SuppressWarnings("unchecked") public void run() { try { if(logger.isDebugEnabled()) { logger.debug("initial kick off of SipApplicationSessionTimerTask running for sip application session " + sipApplicationSession.getId()); } long sleep = getDelay(); if(sleep > 0) { // if the session has been accessed since we started it, put it to sleep if(logger.isDebugEnabled()) { logger.debug("expirationTime is " + sipApplicationSession.getExpirationTimeInternal() + ", now is " + System.currentTimeMillis() + " sleeping for " + sleep / 1000L + " seconds"); } final SipContext sipContext = sipApplicationSession.getSipContext(); final SipApplicationSessionTimerTask expirationTimerTask = sipContext.getSipApplicationSessionTimerService().createSipApplicationSessionTimerTask(sipApplicationSession); sipApplicationSession.setExpirationTimerTask(expirationTimerTask); sipContext.getSipApplicationSessionTimerService().schedule(expirationTimerTask, sleep, TimeUnit.MILLISECONDS); } else { tryToExpire(); } } catch (Throwable t) { logger.error("Timer problem", t); } }
@SuppressWarnings("unchecked") public void run() { try { if(logger.isDebugEnabled()) { logger.debug("initial kick off of SipApplicationSessionTimerTask running for sip application session " + sipApplicationSession.getId()); } long sleep = getDelay(); if(sleep > 0) { // if the session has been accessed since we started it, put it to sleep if(logger.isDebugEnabled()) { logger.debug("expirationTime is " + sipApplicationSession.getExpirationTimeInternal() + ", now is " + System.currentTimeMillis() + " sleeping for " + sleep / 1000L + " seconds"); } final SipContext sipContext = sipApplicationSession.getSipContext(); final SipApplicationSessionTimerTask expirationTimerTask = sipContext.getSipApplicationSessionTimerService().createSipApplicationSessionTimerTask(sipApplicationSession); sipApplicationSession.setExpirationTimerTask(expirationTimerTask); sipContext.getSipApplicationSessionTimerService().schedule(expirationTimerTask, sleep, TimeUnit.MILLISECONDS); } else { tryToExpire(); } } catch (Throwable t) { logger.error("Timer problem", t); } }
protected void scheduleExpirationTimer(MobicentsSipApplicationSession sipApplicationSession) { // Sip Application Session Timer Task moved out of the SipApplicationSession constructor // as for clustering it might not be needed to reschedule them on recreation final SipContext sipContext = sipApplicationSession.getSipContext(); if(sipContext != null) { if(sipContext.getSipApplicationSessionTimeout() > 0) { SipApplicationSessionTimerTask expirationTimerTask = sipContext.getSipApplicationSessionTimerService().createSipApplicationSessionTimerTask(sipApplicationSession); expirationTimerTask = sipContext.getSipApplicationSessionTimerService().schedule(expirationTimerTask, sipApplicationSession.getSipApplicationSessionTimeout(), TimeUnit.MILLISECONDS); sipApplicationSession.setExpirationTimerTask(expirationTimerTask); } sipApplicationSession.notifySipApplicationSessionListeners(SipApplicationSessionEventType.CREATION); } }