首页 > 解决方案 > 管道范围的同步选项

问题描述

我正在寻找在管道内执行同步块的简单方法,确保没有任何工作人员的其他线程进入同一部分。

理由:我有一些外部 API 调用必须按顺序执行,而其他工作人员没有并发执行。必须执行此类调用的情况很少见,因此可以设置阻塞部分。作为解决方案,我可以创建处理此类请求的外部服务,但我正在寻找最简单的方法。

基本图如下所示:

if (!checkConditions(...)) {
    withPipelineWiseLock(myHandleId, () -> {
        if (!checkConditions(...)) {
            try {
                call1(...);
                ...
                callN(...);
            } catch (Exception c) {
                ...
            }
        }
    }
}

标签: google-cloud-dataflowapache-beam

解决方案


推荐阅读