mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
CanalConnector接口去掉stopRunning接口
This commit is contained in:
@@ -134,7 +134,6 @@ public abstract class AbstractCanalAdapterWorker {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
closeConnection();
|
|
||||||
running = false;
|
running = false;
|
||||||
|
|
||||||
syncSwitch.release(canalDestination);
|
syncSwitch.release(canalDestination);
|
||||||
@@ -156,6 +155,4 @@ public abstract class AbstractCanalAdapterWorker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract void closeConnection();
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,11 +34,6 @@ public class CanalAdapterKafkaWorker extends AbstractCanalAdapterWorker {
|
|||||||
// connector.setSessionTimeout(1L, TimeUnit.MINUTES);
|
// connector.setSessionTimeout(1L, TimeUnit.MINUTES);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void closeConnection() {
|
|
||||||
connector.stopRunning();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void process() {
|
protected void process() {
|
||||||
while (!running)
|
while (!running)
|
||||||
|
|||||||
@@ -32,11 +32,6 @@ public class CanalAdapterRocketMQWorker extends AbstractCanalAdapterWorker {
|
|||||||
logger.info("RocketMQ consumer config topic:{}, nameServer:{}, groupId:{}", topic, nameServers, groupId);
|
logger.info("RocketMQ consumer config topic:{}, nameServer:{}, groupId:{}", topic, nameServers, groupId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void closeConnection() {
|
|
||||||
connector.stopRunning();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void process() {
|
protected void process() {
|
||||||
while (!running)
|
while (!running)
|
||||||
@@ -88,7 +83,7 @@ public class CanalAdapterRocketMQWorker extends AbstractCanalAdapterWorker {
|
|||||||
} catch (WakeupException e) {
|
} catch (WakeupException e) {
|
||||||
// No-op. Continue process
|
// No-op. Continue process
|
||||||
}
|
}
|
||||||
connector.stopRunning();
|
connector.disconnect();
|
||||||
logger.info("=============> Disconnect topic: {} <=============", this.topic);
|
logger.info("=============> Disconnect topic: {} <=============", this.topic);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ package com.alibaba.otter.canal.adapter.launcher.loader;
|
|||||||
|
|
||||||
import java.net.SocketAddress;
|
import java.net.SocketAddress;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
import java.util.concurrent.TimeoutException;
|
import java.util.concurrent.TimeoutException;
|
||||||
|
|
||||||
@@ -10,6 +9,7 @@ import com.alibaba.otter.canal.client.CanalConnector;
|
|||||||
import com.alibaba.otter.canal.client.CanalConnectors;
|
import com.alibaba.otter.canal.client.CanalConnectors;
|
||||||
import com.alibaba.otter.canal.client.adapter.OuterAdapter;
|
import com.alibaba.otter.canal.client.adapter.OuterAdapter;
|
||||||
import com.alibaba.otter.canal.client.impl.ClusterCanalConnector;
|
import com.alibaba.otter.canal.client.impl.ClusterCanalConnector;
|
||||||
|
import com.alibaba.otter.canal.client.impl.SimpleCanalConnector;
|
||||||
import com.alibaba.otter.canal.protocol.Message;
|
import com.alibaba.otter.canal.protocol.Message;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -54,11 +54,6 @@ public class CanalAdapterWorker extends AbstractCanalAdapterWorker {
|
|||||||
((ClusterCanalConnector) connector).setSoTimeout(SO_TIMEOUT);
|
((ClusterCanalConnector) connector).setSoTimeout(SO_TIMEOUT);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void closeConnection() {
|
|
||||||
connector.stopRunning();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void process() {
|
protected void process() {
|
||||||
while (!running)
|
while (!running)
|
||||||
@@ -130,4 +125,38 @@ public class CanalAdapterWorker extends AbstractCanalAdapterWorker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void stop() {
|
||||||
|
try {
|
||||||
|
if (!running) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (connector instanceof ClusterCanalConnector) {
|
||||||
|
((ClusterCanalConnector) connector).stopRunning();
|
||||||
|
} else if (connector instanceof SimpleCanalConnector) {
|
||||||
|
((SimpleCanalConnector) connector).stopRunning();
|
||||||
|
}
|
||||||
|
|
||||||
|
running = false;
|
||||||
|
|
||||||
|
syncSwitch.release(canalDestination);
|
||||||
|
|
||||||
|
logger.info("destination {} is waiting for adapters' worker thread die!", canalDestination);
|
||||||
|
if (thread != null) {
|
||||||
|
try {
|
||||||
|
thread.join();
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
// ignore
|
||||||
|
}
|
||||||
|
}
|
||||||
|
groupInnerExecutorService.shutdown();
|
||||||
|
logger.info("destination {} adapters worker thread dead!", canalDestination);
|
||||||
|
canalOuterAdapters.forEach(outerAdapters -> outerAdapters.forEach(OuterAdapter::destroy));
|
||||||
|
logger.info("destination {} all adapters destroyed!", canalDestination);
|
||||||
|
} catch (Exception e) {
|
||||||
|
logger.error(e.getMessage(), e);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -149,11 +149,4 @@ public interface CanalConnector {
|
|||||||
* @throws CanalClientException
|
* @throws CanalClientException
|
||||||
*/
|
*/
|
||||||
void rollback() throws CanalClientException;
|
void rollback() throws CanalClientException;
|
||||||
|
|
||||||
/**
|
|
||||||
* 中断的阻塞,用于优雅停止client
|
|
||||||
*
|
|
||||||
* @throws CanalClientException
|
|
||||||
*/
|
|
||||||
void stopRunning() throws CanalClientException;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -238,15 +238,6 @@ public class KafkaCanalConnector implements CanalMQConnector {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void stopRunning() {
|
|
||||||
if (running) {
|
|
||||||
running = false; // 设置为非running状态
|
|
||||||
// if (!mutex.state()) {
|
|
||||||
// mutex.set(true); // 中断阻塞
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void subscribe(String filter) throws CanalClientException {
|
public void subscribe(String filter) throws CanalClientException {
|
||||||
throw new CanalClientException("mq not support this method");
|
throw new CanalClientException("mq not support this method");
|
||||||
|
|||||||
@@ -65,6 +65,7 @@ public class RocketMQCanalConnector implements CanalMQConnector {
|
|||||||
|
|
||||||
public void disconnect() throws CanalClientException {
|
public void disconnect() throws CanalClientException {
|
||||||
rocketMQConsumer.shutdown();
|
rocketMQConsumer.shutdown();
|
||||||
|
connected = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean checkValid() throws CanalClientException {
|
public boolean checkValid() throws CanalClientException {
|
||||||
@@ -259,10 +260,4 @@ public class RocketMQCanalConnector implements CanalMQConnector {
|
|||||||
throw new CanalClientException("mq not support this method");
|
throw new CanalClientException("mq not support this method");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public void stopRunning() throws CanalClientException {
|
|
||||||
this.rocketMQConsumer.shutdown();
|
|
||||||
connected = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -88,7 +88,6 @@ public class CanalKafkaClientExample {
|
|||||||
if (!running) {
|
if (!running) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
connector.stopRunning();
|
|
||||||
running = false;
|
running = false;
|
||||||
if (thread != null) {
|
if (thread != null) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ public class CanalRocketMQClientExample extends AbstractRocektMQTest {
|
|||||||
if (!running) {
|
if (!running) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
connector.stopRunning();
|
|
||||||
running = false;
|
running = false;
|
||||||
if (thread != null) {
|
if (thread != null) {
|
||||||
try {
|
try {
|
||||||
@@ -134,6 +133,6 @@ public class CanalRocketMQClientExample extends AbstractRocektMQTest {
|
|||||||
} catch (WakeupException e) {
|
} catch (WakeupException e) {
|
||||||
// No-op. Continue process
|
// No-op. Continue process
|
||||||
}
|
}
|
||||||
connector.stopRunning();
|
// connector.stopRunning();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -96,7 +96,6 @@ public class AbstractCanalClientTest {
|
|||||||
if (!running) {
|
if (!running) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
connector.stopRunning();
|
|
||||||
running = false;
|
running = false;
|
||||||
if (thread != null) {
|
if (thread != null) {
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user