繁体   English   中英

如果上游任务的输入发生变化,在 Prefect 核心中是否有一种简单的方法使缓存无效?

[英]In Prefect core is there a simple way to invalidate cache if input of upstream tasks change?

如果上游任务常量输入更改,我正在尝试构建一种机制来使任务的缓存无效。

我目前为每个任务制作一个输入常量的 hash,然后将其用作目标。 我在想我可以建立一个 hash 当前任务输入的哈希值以及上游任务的输入。 正在考虑通过使用流 object 中的常量和边来做到这一点。

这似乎是一个很常见的问题,想看看是否有一种简单的方法来实现它?

最后,我调整了我现有的解决方案,该解决方案使用xxhash为每个任务生成常量的哈希值。

在进行更改之前,我的每项任务的目标看起来像这样:

'{task_name}_{hash_of_input_constants}'

解决方案其实很简单,我只是简单的 append 和 hash 的输入常量用于直接连接的上游任务,所以当只有一个直接连接的上游任务时目标会变成这样:

'{task_name}_{hash_of_input_constants_curent_task}_{hash_of_input_constants_directly_connected_upstream}'

如果上游输入发生更改,这将使缓存无效。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM