All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.ltsopensource.jobtracker.monitor.JobTrackerMStatReporter Maven / Gradle / Ivy

package com.github.ltsopensource.jobtracker.monitor;

import com.github.ltsopensource.core.cluster.NodeType;
import com.github.ltsopensource.core.domain.monitor.JobTrackerMData;
import com.github.ltsopensource.core.domain.monitor.MData;
import com.github.ltsopensource.core.monitor.AbstractMStatReporter;
import com.github.ltsopensource.jobtracker.domain.JobTrackerAppContext;

import java.util.concurrent.atomic.AtomicLong;

/**
 * @author Robert HG ([email protected]) on 8/31/15.
 */
public class JobTrackerMStatReporter extends AbstractMStatReporter {

    public JobTrackerMStatReporter(JobTrackerAppContext appContext) {
        super(appContext);
    }

    // 接受的任务数
    private AtomicLong receiveJobNum = new AtomicLong(0);
    // 分发出去的任务数
    private AtomicLong pushJobNum = new AtomicLong(0);
    // 执行成功个数
    private AtomicLong exeSuccessNum = new AtomicLong(0);
    // 执行失败个数
    private AtomicLong exeFailedNum = new AtomicLong(0);
    // 延迟执行个数
    private AtomicLong exeLaterNum = new AtomicLong(0);
    // 执行异常个数
    private AtomicLong exeExceptionNum = new AtomicLong(0);
    // 修复死任务数
    private AtomicLong fixExecutingJobNum = new AtomicLong(0);

    public void incReceiveJobNum() {
        receiveJobNum.incrementAndGet();
    }

    public void incPushJobNum() {
        pushJobNum.incrementAndGet();
    }

    public void incPushJobNum(int num) {
        for (int i = 0; i < num; i++) {
            pushJobNum.incrementAndGet();
        }
    }

    public void incExeSuccessNum() {
        exeSuccessNum.incrementAndGet();
    }

    public void incExeFailedNum() {
        exeFailedNum.incrementAndGet();
    }

    public void incExeLaterNum() {
        exeLaterNum.incrementAndGet();
    }

    public void incExeExceptionNum() {
        exeExceptionNum.incrementAndGet();
    }

    public void incFixExecutingJobNum() {
        fixExecutingJobNum.incrementAndGet();
    }

    @Override
    protected MData collectMData() {
        JobTrackerMData mData = new JobTrackerMData();
        mData.setReceiveJobNum(receiveJobNum.getAndSet(0));
        mData.setExeExceptionNum(exeExceptionNum.getAndSet(0));
        mData.setExeFailedNum(exeFailedNum.getAndSet(0));
        mData.setExeSuccessNum(exeSuccessNum.getAndSet(0));
        mData.setExeLaterNum(exeLaterNum.getAndSet(0));
        mData.setFixExecutingJobNum(fixExecutingJobNum.getAndSet(0));
        mData.setPushJobNum(pushJobNum.getAndSet(0));
        return mData;
    }

    @Override
    protected NodeType getNodeType() {
        return NodeType.JOB_TRACKER;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy