[英]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.