在阅读了有关基于文件目标的输出缓存的 文档后,我认为此工作流程应该是输出缓存的示例:
from time import sleep
from prefect import Flow, task
from prefect.engine.results import LocalResult
@task(target="func_task_target.txt", checkpoint=True,
result=LocalResult(dir="~/.prefect"))
def func_task():
sleep(5)
return 99
with Flow("Test-cache") as flow:
func_task()
if __name__ == '__main__':
flow.run()
Run Code Online (Sandbox Code Playgroud)
我希望func_task运行一次,进行缓存,然后在下次运行流程时使用缓存的值。然而,似乎func_task每次都会运行。
我哪里出错了?或者我误解了文档?
尝试将环境变量设置PREFECT__FLOWS__CHECKPOINTING为True
import os
os.environ["PREFECT__FLOWS__CHECKPOINTING"] = "true"
Run Code Online (Sandbox Code Playgroud)
您还可以更改结果目录
os.environ["PREFECT__HOME_DIR"] = "path to dir"
Run Code Online (Sandbox Code Playgroud)