package com.taobao.yugong.common.model; import javax.sql.DataSource; import com.taobao.yugong.common.db.meta.Table; import com.taobao.yugong.common.model.position.Position; /** * yugong数据处理上下文 * * @author agapple 2013-9-12 下午5:04:57 */ public class YuGongContext { // 具体每张表的同步 private Position lastPosition; // 最后一次同步的position记录 private Table tableMeta; // 对应的meta private boolean ignoreSchema = false; // 同步时是否忽略schema,oracle迁移到mysql可能schema不同,可设置为忽略 // 全局共享 private RunMode runMode; private int onceCrawNum; // 每次提取的记录数 private int tpsLimit = 0; // <=0代表不限制 private DataSource sourceDs; // 源数据库链接 private DataSource targetDs; // 目标数据库链接 private boolean batchApply = false; private boolean skipApplierException = false; // 是否允许跳过applier异常 private String sourceEncoding = "UTF-8"; private String targetEncoding = "UTF-8"; public Position getLastPosition() { return lastPosition; } public void setLastPosition(Position lastPosition) { this.lastPosition = lastPosition; } public int getOnceCrawNum() { return onceCrawNum; } public void setOnceCrawNum(int onceCrawNum) { this.onceCrawNum = onceCrawNum; } public DataSource getSourceDs() { return sourceDs; } public void setSourceDs(DataSource sourceDs) { this.sourceDs = sourceDs; } public DataSource getTargetDs() { return targetDs; } public void setTargetDs(DataSource targetDs) { this.targetDs = targetDs; } public boolean isBatchApply() { return batchApply; } public void setBatchApply(boolean batchApply) { this.batchApply = batchApply; } public String getSourceEncoding() { return sourceEncoding; } public void setSourceEncoding(String sourceEncoding) { this.sourceEncoding = sourceEncoding; } public String getTargetEncoding() { return targetEncoding; } public void setTargetEncoding(String targetEncoding) { this.targetEncoding = targetEncoding; } public Table getTableMeta() { return tableMeta; } public void setTableMeta(Table tableMeta) { this.tableMeta = tableMeta; } public int getTpsLimit() { return tpsLimit; } public void setTpsLimit(int tpsLimit) { this.tpsLimit = tpsLimit; } public RunMode getRunMode() { return runMode; } public void setRunMode(RunMode runMode) { this.runMode = runMode; } public boolean isIgnoreSchema() { return ignoreSchema; } public void setIgnoreSchema(boolean ignoreSchema) { this.ignoreSchema = ignoreSchema; } public boolean isSkipApplierException() { return skipApplierException; } public void setSkipApplierException(boolean skipApplierException) { this.skipApplierException = skipApplierException; } public YuGongContext cloneGlobalContext() { YuGongContext context = new YuGongContext(); context.setRunMode(runMode); context.setBatchApply(batchApply); context.setSourceDs(sourceDs); context.setTargetDs(targetDs); context.setSourceEncoding(sourceEncoding); context.setTargetEncoding(targetEncoding); context.setOnceCrawNum(onceCrawNum); context.setTpsLimit(tpsLimit); context.setIgnoreSchema(ignoreSchema); context.setSkipApplierException(skipApplierException); return context; } }