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

cn.patterncat.job.event.store.domain.JobLog Maven / Gradle / Ivy

The newest version!
package cn.patterncat.job.event.store.domain;

import cn.patterncat.job.event.JobEvent;
import cn.patterncat.job.event.JobEventType;
import cn.patterncat.job.event.JobType;
import com.alibaba.fastjson.JSON;
import lombok.Builder;
import lombok.Data;
import org.springframework.data.annotation.Version;
import org.springframework.data.elasticsearch.annotations.*;

import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.Date;
import java.util.Map;
import java.util.Objects;

/**
 * Created by patterncat on 2017-11-17.
 */
@Data
@Builder
@Document(indexName="joblog",type = "event")
//@Mapping(mappingPath = "elasticsearch/mappings.json")
public class JobLog {

    private String id;

    String jobId;

    JobEventType jobEventType;

    JobType jobType;

    long eventTimestamp;

    long future;

    long frequency;

    String namespace;

    String workerName;

    String queue;

    String jobClass;

    String jobArgs;

    String jobVars;

    String jobUnknownFields;

    String runner;

    Object result;

    String throwable;

    private Date createTime;

    @Version
    private Long version;

    public static JobLog from(JobEvent jobEvent){
        JobLog log = JobLog.builder()
                .jobType(jobEvent.getJobType())
                .jobEventType(jobEvent.getJobEventType())
                .queue(jobEvent.getQueue())
                .namespace(jobEvent.getNamespace())
                .workerName(jobEvent.getWorker())
                .createTime(new Date())
                .eventTimestamp(jobEvent.getTimestamp())
                .frequency(jobEvent.getFrequency())
                .future(jobEvent.getFuture())
                .jobClass(jobEvent.getJobClassName())
                .jobId(Objects.toString(jobEvent.getJobUnknownFields().get("jobId"),""))
                .jobArgs(object2Json(jobEvent.getJobArgs()))
                .jobVars(object2Json(jobEvent.getJobVars()))
                .jobUnknownFields(object2Json(jobEvent.getJobUnknownFields()))
                .runner(jobEvent.getRunnerString())
                .result(jobEvent.getResult())
                .throwable(jobEvent.getThrowableString(Integer.MAX_VALUE))
                .build();
        return log;

    }

    public static String object2Json(Object object){
        if(object == null){
            return "";
        }
        return JSON.toJSONString(object);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy