package net.johnewart.gearman.engine.metrics; import com.google.common.collect.ImmutableList; import net.johnewart.gearman.common.Job; import net.johnewart.gearman.common.interfaces.EngineWorker; import net.johnewart.gearman.engine.queue.JobQueue; import org.joda.time.DateTime; public interface QueueMetrics { public void handleJobCompleted(Job job); public void handleJobFailed(Job job); public void handleJobStarted(Job job); public void handleJobException(Job job); public void handleJobEnqueued(Job job); public void handleWorkerAddition(EngineWorker worker); public void handleWorkerRemoval(EngineWorker worker); public DateTime getStartTime(); public long getActiveJobCount(); public long getActiveJobCount(String queueName); public long getEnqueuedJobCount(); public long getEnqueuedJobCount(String queueName); public long getCompletedJobCount(); public long getCompletedJobCount(String queueName); public long getFailedJobCount(); public long getFailedJobCount(String queueName); public long getExceptionCount(); public long getExceptionCount(String queueName); public long getRunningJobsCount(); public long getRunningJobsCount(String queueName); public long getPendingJobsCount(); public long getPendingJobsCount(String queueName); public long getHighPriorityJobsCount(String queueName); public long getMidPriorityJobsCount(String queueName); public long getLowPriorityJobsCount(String queueName); public ImmutableList<String> getQueueNames(); public long getActiveWorkers(); public long getActiveWorkers(String queueName); void registerJobQueue(JobQueue jobQueue); }