public class SequencePartitionAllocator extends AbstractPartitionAllocator
eg:假设两个表(table-1,table-2),各自range情况如下:
在这种情况下,会出现同一时刻,两个表的range在同时处理的情况,比如table-1:1001-2000和table-2:0-3000会分别被两个worker线程执行.
在实际场景中,可能有这样的业务:需要等待table-1全部处理完毕,再处理table-2的数据(比如数据清洗),此时需要保证table-2严格在table-1
完全结束后再执行,此时应该使用TableOneByOnePartitionAllocator
| 构造器和说明 |
|---|
SequencePartitionAllocator() |
| 限定符和类型 | 方法和说明 |
|---|---|
List<PartitionTask> |
findRange(String taskId,
List<String> tableNameList) |
findRange, getAllTables, isTableFinished, isTableProcessing, isTableProcessingOrFinished, preAllocatepublic List<PartitionTask> findRange(String taskId, List<String> tableNameList) throws NoTaskException
findRange 在类中 AbstractPartitionAllocatorNoTaskExceptionCopyright © 2016. All rights reserved.