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