@Test public void testResetAfterLimit() throws InterruptedException { rateLimiter = new LoggingRateLimiter(0); ConcurrentHashMultiset freq = rateLimiter.getFrequency(); rateLimiter.resetAfterLimit(); assertTrue (freq != rateLimiter.getFrequency() ); freq = rateLimiter.getFrequency(); Thread.sleep(1); rateLimiter.resetAfterLimit(); assertThat (freq,is( rateLimiter.getFrequency())); } boolean ran= false;
private void logSystemEvent(final ProceedingJoinPoint pjp, final String type, JobExecutingData data, SystemData retVal) { final SystemData active = retVal; loggingRateLimiter.addAndEnsureFrequency(pjp.getTarget() .getClass()); loggingRateLimiter.capacityAvailable(pjp.getTarget() .getClass(), this.maxLoggingCapacity, new Runnable() { @Override public void run() { postEvent(pjp, type, data, active); } }); }
@Before public void setup(){ rateLimiter = new LoggingRateLimiter(); rateLimiter.resetAfterLimit() ; }
@Test public void testDoesNotReset(){ ConcurrentHashMultiset freq = rateLimiter.getFrequency(); rateLimiter.resetAfterLimit(); assertThat (freq,is( rateLimiter.getFrequency())); }
public JobsBeingExecuted(@Qualifier("microserverEventBus") EventBus bus, @Value("${system.logging.max.per.hour:10}") long maxLoggingCapacity, @Value("${micro.events.job.name.format:SIMPLE}") JobName.Types jobNameType) { this.eventBus = bus; this.jobNameType = jobNameType; this.loggingRateLimiter = new LoggingRateLimiter<>(); this.maxLoggingCapacity = maxLoggingCapacity; }
public void addAndEnsureFrequency(T clazz) { resetAfterLimit(); frequency.add(clazz); }
@Test public void testCapacityAvailable() { ran = false; rateLimiter.capacityAvailable(this, 100, () -> { ran = true;}); assertTrue( ran); }
public JobsBeingExecuted(@Qualifier("microserverEventBus") EventBus bus, @Value("${system.logging.max.per.hour:10}") long maxLoggingCapacity, @Value("${micro.events.job.name.format:SIMPLE}") JobName.Types jobNameType) { this.eventBus = bus; this.jobNameType = jobNameType; this.loggingRateLimiter = new LoggingRateLimiter<>(); this.maxLoggingCapacity = maxLoggingCapacity; }
public void addAndEnsureFrequency(T clazz) { resetAfterLimit(); frequency.add(clazz); }
@Test public void testAddAndEnsureFrequency() { for(int i=0;i<10;i++){ rateLimiter.addAndEnsureFrequency(this); } rateLimiter.capacityAvailable(this, 5, () ->fail ("failure")); }
private void logSystemEvent(final ProceedingJoinPoint pjp, final String type, JobExecutingData data, SystemData retVal) { final SystemData active = retVal; loggingRateLimiter.addAndEnsureFrequency(pjp.getTarget() .getClass()); loggingRateLimiter.capacityAvailable(pjp.getTarget() .getClass(), this.maxLoggingCapacity, new Runnable() { @Override public void run() { postEvent(pjp, type, data, active); } }); }