@Subscribe public void jobComplete(JobCompleteEvent data) { if (this.configuration.isJobsByType()) { jobs.complete(data.getCorrelationId()); registry.counter(prefix + ".jobs-active-" + data.getType() + "-count") .dec(); registry.counter(prefix + ".jobs-processed-" + data.getType() + "-count-data") .inc(data.getDataSize()); registry.meter(prefix + ".jobs-processed-" + data.getType() + "-meter-data") .mark(data.getDataSize()); registry.counter(prefix + ".jobs-errors-" + data.getType() + "-count-data") .inc(data.getErrors()); registry.meter(prefix + ".jobs-errors-" + data.getType() + "-meter-data") .mark(data.getErrors()); if (data.getErrors() > 0l) { registry.counter(prefix + ".jobs-succeeded-" + data.getType() + "-count") .inc(); registry.meter(prefix + ".jobs-succeeded-" + data.getType() + "-meter") .mark(); } else { registry.counter(prefix + ".jobs-failed-" + data.getType() + "-count") .inc(); registry.meter(prefix + ".jobs-failed-" + data.getType() + "-meter") .mark(); } } }
@Test public void jobsCounterDec() { catcher.jobComplete(new JobCompleteEvent( 10l, "test", 10l, 5l)); assertThat(registry.counter(this.config.getPrefix() + ".jobs-active-test-count") .getCount(), equalTo(0l)); }
@Test public void testStartAndCompleteEventId() throws Throwable { scheduleAround(); assertThat(start.getCorrelationId(), equalTo(complete.getCorrelationId())); assertThat(start.getType(), equalTo(complete.getType())); }
private Object executeScheduledJob(final ProceedingJoinPoint pjp, final String type) throws Throwable { addTypeToStatCounter(type); JobExecutingData data = new JobExecutingData( type, statCounter.count(type)); String id = buildId(type, data.getProcessingThread()); events.active(id, data); SystemData retVal = null; long correlationId = r.nextLong(); eventBus.post(new JobStartEvent( correlationId, type)); try { retVal = Optional.ofNullable(((SystemData) pjp.proceed())) .map(sd -> sd.withCorrelationId(id)) .orElse(null); return retVal; } finally { logSystemEvent(pjp, type, data, retVal); retVal = Optional.ofNullable(retVal) .orElse(SystemData.builder() .correlationId("" + correlationId) .errors(0l) .processed(0l) .build()); eventBus.post(new JobCompleteEvent( correlationId, type, retVal.getErrors(), retVal.getProcessed())); } }
@Test public void testExecuteId() throws Throwable { scheduleAround(); verify(pjp, times(1)).proceed(); assertThat(incoming.getCorrelationId(), containsString("id_String")); assertThat(start.getCorrelationId(), equalTo(complete.getCorrelationId())); assertThat(start.getType(), equalTo(complete.getType())); }
@Test public void jobsCounterDec() { catcher.jobComplete(new JobCompleteEvent( 10l, "test", 10l, 5l)); assertThat(registry.counter(this.config.getPrefix() + ".jobs-active-test-count") .getCount(), equalTo(-1l)); }
private Object executeScheduledJob(final ProceedingJoinPoint pjp, final String type) throws Throwable { addTypeToStatCounter(type); JobExecutingData data = new JobExecutingData( type, statCounter.count(type)); String id = buildId(type, data.getProcessingThread()); events.active(id, data); SystemData retVal = null; long correlationId = r.nextLong(); eventBus.post(new JobStartEvent( correlationId, type)); try { retVal = Optional.ofNullable(((SystemData) pjp.proceed())) .map(sd -> sd.withCorrelationId(id)) .orElse(null); return retVal; } finally { logSystemEvent(pjp, type, data, retVal); retVal = Optional.ofNullable(retVal) .orElse(SystemData.builder() .correlationId("" + correlationId) .errors(0l) .processed(0l) .build()); eventBus.post(new JobCompleteEvent( correlationId, type, retVal.getErrors(), retVal.getProcessed())); } }