开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

请教个问题,我自定义的sink执行invoke都没问题,但就是不执行覆写的close方法,导致我没法

请教个问题,我自定义的sink执行invoke都没问题,但就是不执行覆写的close方法,导致我没法关闭打开的资源。 有遇到过的同学吗?

展开
收起
十一0204 2023-04-05 09:07:34 149 0
1 条回答
写回答
取消 提交回答
  • 随心分享,欢迎友善交流讨论:)

    如果你自定义的Sink在执行invoke方法时没有问题,但是无法执行close方法,可能有以下几个原因:

    1、Flink的任务执行环境未关闭。Flink在任务执行期间会启动一个任务执行环境,如果任务执行环境未关闭,close方法也无法执行。你可以通过手动关闭任务执行环境来尝试解决这个问题。

    2、数据流没有被正确关闭。在Flink中,数据流必须被正确关闭,否则close方法不会被执行。在你的代码中确认是否正确关闭了数据流。

    3、异常或错误阻塞了close方法的执行。在你的代码中查找可能造成close方法执行异常或错误的原因,比如资源释放不完整、资源挂起等等。

    如果以上方法都未能解决问题,你可以在invoke方法中手动调用close方法来关闭资源。但是这种方法可能会导致资源泄漏和一些其他问题,所以仅适用于紧急情况。

    2023-04-06 13:07:53
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关电子书

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