开发者社区> 问答> 正文

executeTime精度丢失

executeTime单位的毫秒,但是目前取到的毫秒都是0,也就是说只能精确的秒,请问有什么办法可以拿到更精确的时间么,谢谢

报文如下

  • Start : [mysql-bin.000037:694927693:1519437789000(2018-02-24 10:03:09)]
  • Start : [mysql-bin.000037:694928390:1519437796000(2018-02-24 10:03:16)]
  • Start : [mysql-bin.000037:694929465:1519437804000(2018-02-24 10:03:24)]

原提问者GitHub用户 cm-jornada

展开
收起
古拉古拉 2023-06-18 10:49:44 56 0
2 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    根据您提供的报文,可以看到 Canal 中的 executeTime 字段是精确到秒级别的,并且时间戳后面的毫秒部分都是 000。这可能是由于 Canal 在从 MySQL 中读取 binlog 数据时,时间戳只精确到秒级别,而无法获取更精确的时间戳信息导致的。

    如果您需要更精确的时间戳信息,可以尝试使用 Canal 的其他版本,或者自己修改 Canal 的代码实现。Canal 的开源社区中可能有其他版本或者插件,可以提供更精确的时间戳信息。另外,您也可以自己修改 Canal 的代码,以便支持更精确的时间戳信息。

    需要注意的是,修改 Canal 的代码可能会影响到其稳定性和性能。如果您不是很熟悉 Canal 的内部实现和细节,建议先在测试环境中进行验证,以确保修改不会对系统产生不良影响。

    2023-06-30 17:33:38
    赞同 展开评论 打赏
  • 没有办法,binlog里只记录到毫秒

    原回答者GitHub用户 agapple

    2023-06-18 11:04:11
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载