public JDKTimerService createInstance() { return new JDKTimerService(); } },
@Test public void simpleEvictionTest() throws InterruptedException { MessageReceiverHandler handler = new GridNodeImpl( "myNode", null ).getMessageReceiverHandler(); ContextImplWithEviction contextTemp = (ContextImplWithEviction) ((GridNodeServer) handler).getData().getTemp(); ((ContextImplWithEviction) contextTemp).setEntryEvictionTime(2000); // 2 seconds ((ContextImplWithEviction) contextTemp).setEvictionWakeUpTime(1000); // 1 seconds JDKTimerService timer = new JDKTimerService(1); contextTemp.set("myvalue", "value"); Long evictionWakeUpTime = contextTemp.getEvictionWakeUpTime(); timer.scheduleJob(new EvictionJob(contextTemp), new MockJobContext(), new MockTrigger(new Date(), evictionWakeUpTime)); //Set the timestamp for the first time contextTemp.set("myvalue", "value"); Thread.sleep(1000); //Update the timestamp String value = (String) contextTemp.get("myvalue"); //Wait for eviction Thread.sleep(4000); assertNull((String) contextTemp.get("myvalue")); }
public JobHandle scheduleJob(Job job, JobContext ctx, Trigger trigger) { Date date = trigger.hasNextFireTime(); if ( date != null ) { JDKJobHandle jobHandle = new JDKJobHandle( idCounter.getAndIncrement() ); TimerJobInstance jobInstance = jobFactoryManager.createTimerJobInstance( job, ctx, trigger, jobHandle, this ); jobHandle.setTimerJobInstance( (TimerJobInstance) jobInstance ); internalSchedule( (TimerJobInstance) jobInstance ); return jobHandle; } else { return null; } }