mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
block waiting interrupted by stop request
This commit is contained in:
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.alibaba.otter.canal.client.impl.ClusterCanalConnector;
|
||||
import org.apache.commons.lang.SystemUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -35,6 +36,7 @@ public class AbstractCanalClientTest {
|
||||
protected static final String SEP = SystemUtils.LINE_SEPARATOR;
|
||||
protected static final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
||||
protected volatile boolean running = false;
|
||||
private volatile boolean waiting = true;
|
||||
protected Thread.UncaughtExceptionHandler handler = new Thread.UncaughtExceptionHandler() {
|
||||
|
||||
public void uncaughtException(Thread t, Throwable e) {
|
||||
@@ -91,6 +93,12 @@ public class AbstractCanalClientTest {
|
||||
return;
|
||||
}
|
||||
running = false;
|
||||
if (waiting) {
|
||||
if (connector instanceof ClusterCanalConnector) {
|
||||
((ClusterCanalConnector) connector).setRetryTimes(-1);
|
||||
}
|
||||
thread.interrupt();
|
||||
}
|
||||
if (thread != null) {
|
||||
try {
|
||||
thread.join();
|
||||
@@ -109,6 +117,7 @@ public class AbstractCanalClientTest {
|
||||
MDC.put("destination", destination);
|
||||
connector.connect();
|
||||
connector.subscribe();
|
||||
waiting = false;
|
||||
while (running) {
|
||||
Message message = connector.getWithoutAck(batchSize); // 获取指定数量的数据
|
||||
long batchId = message.getId();
|
||||
|
||||
Reference in New Issue
Block a user