/** * Initialize this TaskReader with the specified context object. */ @SuppressWarnings("unchecked") public void initialize(TaskReaderContext context) { this.context = context; this.parameter = (T) context.getReaderParameter(); }
@Override public RecordChunk<T> load(MediaSourceInfo key) throws Exception { return recordChunk.copyWithoutRecords(); } }
@Override public void start() { super.start(); }
private RecordChunk<R> toFetch() throws InterruptedException { //statistic before ReaderStatistic readerStatistic = context.taskReaderSession().getData(ReaderStatistic.KEY); long startTime = System.currentTimeMillis(); //do fetch RecordChunk<R> result = fetch(); //statistic after readerStatistic.setDelayTimeAfterFetch(System.currentTimeMillis() - result.getFirstEntryTime()); readerStatistic.setTimeForFetch(System.currentTimeMillis() - startTime); readerStatistic.setRecordsCountByFetch(result.getRecords().size()); return result; }
@Override public RecordChunk<RdbEventRecord> merge(RecordChunk<RdbEventRecord> recordChunk) { RecordChunk<RdbEventRecord> newChunk = recordChunk.copyWithoutRecords(); newChunk.setRecords(merge(recordChunk.getRecords())); return newChunk; }
public void prePush() { context.beginSession(); context.taskWriterSession().setData(WriterStatistic.KEY, new WriterStatistic(context.taskId(), parameter)); }
/** * 对分组后的数据进行最终的load操作 */ protected void load(List<RecordChunk<T>> recordChunkList, final TaskWriterContext context) { //statistic before WriterStatistic writerStatistic = context.taskWriterSession().getData(WriterStatistic.KEY); long startTime = System.currentTimeMillis(); //do load submitAndWait(recordChunkList, context); //statistic after writerStatistic.setTimeForLoad(System.currentTimeMillis() - startTime); }
@Override public void initialize(TaskReaderContext context) { super.initialize(context); if (context.positionManager().getPosition(context.taskId()) != null) { this.count = ((DummyReaderPosition) context.positionManager().getPosition(context.taskId())).getCount(); } }
@Override protected void dump(RecordChunk<HRecord> recordChunk) { for (HRecord record : recordChunk.getRecords()) { logger.info("HRecord Info is :" + record); } }
@Override public void stop() { super.stop(); }
@Override public void commit(RecordChunk<DummyRecord> recordChunk) throws InterruptedException { super.commit(recordChunk); }
@Override public void stop() { super.stop(); logger.info("DummyTaskWriter stopped."); }
@Override @SuppressWarnings({"unchecked"}) public void initialize(TaskInfo taskInfo) { taskReader = buildTaskReader(); taskReader.initialize(workerTaskReaderContext); }
public void push(RecordChunk recordChunk) { doPush(recordChunk); }
@Override void close() { Thread.interrupted();//如果有中断状态取消中断状态,保证后续操作正常进行 taskWriter.close(); }
@SuppressWarnings({"unchecked"}) @Override public void initialize(TaskInfo taskInfo) { this.taskWriter = buildTaskWriter(); this.taskWriter.initialize(workerTaskWriterContext); }
/** * 判断是否还有必要继续 */ private boolean shouldContinue(RecordChunk<T> recordChunk) { List<T> records = recordChunk.getRecords(); return !(records == null || records.isEmpty()); } }
@Override public void stop() { super.stop(); logger.info("DummyTaskReader stopped."); }
@Override public void stop() { if (!isStart()) { return; } super.stop(); }