问题描述
我正在尝试构建一种机制,如果上游任务常量输入更改,则使任务的缓存无效。
我目前对每个任务的输入常量进行散列,然后将其用作目标。我在想我可以建立一个当前任务输入以及上游任务输入的哈希值。想通过使用 Flow 对象中的常量和边来做到这一点。
这似乎是一个很普遍的问题,想看看实际上是否有一种简单的方法来实现它?
解决方法
最后,我调整了我现有的解决方案,该解决方案使用 xxhash
为每个任务生成常量的哈希值。
在进行更改之前,我对每项任务的目标如下所示:
'{task_name}_{hash_of_input_constants}'
解决方案其实很简单,我只是为直接连接的上游任务附加输入常量的哈希值,所以当只有一个直接连接的上游任务目标时,它会变成这样:
'{task_name}_{hash_of_input_constants_curent_task}_{hash_of_input_constants_directly_connected_upstream}'
如果上游输入发生更改,这将使缓存无效。