簡體   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