CMSgov/dpc-app

View on GitHub
dpc-queue/src/main/java/gov/cms/dpc/queue/health/JobQueueHealthCheck.java

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package gov.cms.dpc.queue.health;

import com.codahale.metrics.health.HealthCheck;
import gov.cms.dpc.queue.IJobQueue;
import gov.cms.dpc.queue.annotations.AggregatorID;

import javax.inject.Inject;
import javax.inject.Singleton;
import java.util.UUID;

/**
 * Simple check for validating at the {@link IJobQueue} is healthy
 */
@Singleton
public class JobQueueHealthCheck extends HealthCheck {

    private final IJobQueue queue;

    private final UUID aggregatorID;

    @Inject
    public JobQueueHealthCheck(IJobQueue queue, @AggregatorID UUID aggregatorID) {
        this.queue = queue;
        this.aggregatorID = aggregatorID;
    }

    @Override
    public Result check() {
        try {
            this.queue.assertHealthy(aggregatorID);
            return Result.healthy();
        } catch (Exception e) {
            return Result.unhealthy(e.getMessage());
        }
    }
}