【发布时间】:2021-02-28 19:01:48
【问题描述】:
嘿 :) 我对锁定或互斥行为有疑问。
场景:
让我们假设以下场景:
- 管道正在处理一些本地文件。这些文件由 CI-CD 作业放置。处理后我想删除文件。如果作业花费的时间比计划间隔长,这将导致竞争条件
- 两条流水线占用大量资源,因此无法并行运行。
可能的解决方案
- 目前我会在正在运行的服务中使用某种互斥锁或锁,其中管道可以注册并允许执行或不执行。
- 复制数据以确保每个工作流都可以清理和使用自己的数据。
- 创建本地锁定文件,并确保成功后将删除该文件。
- 创建一个较小的计划间隔并检查是否存在锁定。如果条件不满足,则干净退出。
我知道这可能不是 dagster 的正常用例,但我也想将 dagster 用于其他工作流程,例如清理任务和触发其他管道。
谢谢
【问题讨论】: