mirror of
https://github.com/alibaba/canal.git
synced 2026-11-04 00:30:15 +08:00
修复测试类报错 (#4516)
* optimize YAML config loader (#4332) * fix bug BASE TABLE as table name (#4217) * fix issues#4328 (#4329) * docs: add nodejs canal client support (#4260) Co-authored-by: zhangxunwei <zhangxunwei@dxy.cn> * fix destination not encoded (#4279) * 修复Canal指定时间戳启动失效,总是从最新的点位开始同步问题 (#4348) * 支持用户自定义的CanalAlarmHandler * RowsLogEvent增加对TableMapLogEvent判空检查,防止NPE异常 * 修复Canal指定时间戳启动失效,总是从最新的点位开始同步问题, issue: #4347 Co-authored-by: 云时 <mingya.wmy@alibaba-inc.com> * fixed 4334 , support jdk8/jdk11 * fixed issue #4266 , typo * fixed issue #4243 , support auto register for cluster = null * fixed issue #4225 , support mysql version >= 8.0.26 heartbeat v2 * fixed issue #4308 , support query_log_event for maraiadb 10.10.1 * ignore compression event * support jdk11 * support druid 1.2.12 * fixed mariadb 10.x * sync canal-template.properties * update fastjson & druid version (#4406) * 修复升级2.0.4导致兼容的问题 * update druid & fastjson version * update fastjson version * update druid & fastjson version * meta.dat文件数据丢失 (#4397) * update fastjson & druid version (#4438) * 局部变量线程安全,优先使用StringBuilder替换StringBuffer (#4472) Co-authored-by: 夏亮 <xialiang@newerabc.com> * 1. CanalController stop 需要同时将 embededCanalServer.stop (#4477) 2. ServerRunningMonitor 线程池未正常回收,线程池管理与 start/stop保持一致 * vuln-fix: Use HTTPS instead of HTTP to resolve dependencies (#4437) This fixes a security vulnerability in this project where the `build.gradle` files were configuring Gradle to resolve dependencies over HTTP instead of HTTPS. Weakness: CWE-829: Inclusion of Functionality from Untrusted Control Sphere Severity: High CVSSS: 8.1 Detection: OpenRewrite Reported-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com> Signed-off-by: Jonathan Leitschuh <Jonathan.Leitschuh@gmail.com> Bug-tracker: https://github.com/JLLeitschuh/security-research/issues/9 Co-authored-by: Moderne <team@moderne.io> Co-authored-by: Moderne <team@moderne.io> * fix_ETL同步mysql关键字报错 (#4346) Co-authored-by: foleyang <foleyang@cogobuy.com> * optimize code * use compact BigDecimal * performance optimize , 1. cache string names 2. cache Charset * performance optimize ,cache integer/long valueof * 测试类报错 Co-authored-by: gongchangyou <gongchangyou@gmail.com> Co-authored-by: ChanaLii <316529035@qq.com> Co-authored-by: zhangxunwei <zhangxunweia@gmail.com> Co-authored-by: zhangxunwei <zhangxunwei@dxy.cn> Co-authored-by: tianpeidong <39491687+tianpeidong@users.noreply.github.com> Co-authored-by: dataccs <dataccs@163.com> Co-authored-by: 云时 <mingya.wmy@alibaba-inc.com> Co-authored-by: jianghang.loujh <jianghang.loujh@alibaba-inc.com> Co-authored-by: 温绍锦 <shaojin.wensj@alibaba-inc.com> Co-authored-by: noaso <noasoso@gmail.com> Co-authored-by: HumanPassenger <40585855+HumanPassenger@users.noreply.github.com> Co-authored-by: 夏亮 <xialiang@newerabc.com> Co-authored-by: 华仔 <591327356@qq.com> Co-authored-by: Jonathan Leitschuh <jonathan.leitschuh@gmail.com> Co-authored-by: Moderne <team@moderne.io> Co-authored-by: 杰锅不是锅 <1105568074@qq.com> Co-authored-by: foleyang <foleyang@cogobuy.com>
This commit is contained in:
@@ -38,7 +38,7 @@ public class ServerRunningMonitor extends AbstractCanalLifeCycle {
|
||||
private ServerRunningData serverData;
|
||||
// 当前实际运行的节点状态信息
|
||||
private volatile ServerRunningData activeData;
|
||||
private ScheduledExecutorService delayExector = Executors.newScheduledThreadPool(1);
|
||||
private ScheduledExecutorService delayExecutor;
|
||||
private int delayTime = 5;
|
||||
private ServerRunningListener listener;
|
||||
|
||||
@@ -73,7 +73,7 @@ public class ServerRunningMonitor extends AbstractCanalLifeCycle {
|
||||
initRunning();
|
||||
} else {
|
||||
// 否则就是等待delayTime,避免因网络瞬端或者zk异常,导致出现频繁的切换操作
|
||||
delayExector.schedule(() -> initRunning(), delayTime, TimeUnit.SECONDS);
|
||||
delayExecutor.schedule(() -> initRunning(), delayTime, TimeUnit.SECONDS);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -90,6 +90,7 @@ public class ServerRunningMonitor extends AbstractCanalLifeCycle {
|
||||
try {
|
||||
processStart();
|
||||
if (zkClient != null) {
|
||||
delayExecutor = Executors.newScheduledThreadPool(1);
|
||||
// 如果需要尽可能释放instance资源,不需要监听running节点,不然即使stop了这台机器,另一台机器立马会start
|
||||
String path = ZookeeperPathUtils.getDestinationServerRunning(destination);
|
||||
zkClient.subscribeDataChanges(path, dataListener);
|
||||
@@ -122,6 +123,10 @@ public class ServerRunningMonitor extends AbstractCanalLifeCycle {
|
||||
if (zkClient != null) {
|
||||
String path = ZookeeperPathUtils.getDestinationServerRunning(destination);
|
||||
zkClient.unsubscribeDataChanges(path, dataListener);
|
||||
if (delayExecutor != null) {
|
||||
delayExecutor.shutdown();
|
||||
delayExecutor = null;
|
||||
}
|
||||
|
||||
releaseRunning(); // 尝试一下release
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user