我是flyte新手,目前正在尝试做一些非常简单的事情。
因此,我尝试并行运行多个独立任务,如果我理解文档,这正是
map_task
的目的。
但是,到目前为止我还无法让 Flyte 实际上并行运行它们。
任何帮助将不胜感激。
提前致谢。
from flytekit import map_task, task, workflow
@task
def do_something(value: str) -> str:
print(f"launched: {value}", flush=True)
time.sleep(60) # fakes long process time
return f"{value}-processed"
@workflow
def do_multiple_things() -> list[str]:
values = ["foo", "bar", "baz"]
return map_task(do_something)(value=values)
您能提供更多背景信息吗?你想如何运行它?这是在远程运行(例如在实时 Flyte 后端)还是在本地运行?本地运行实际上还不会并行。 (让 Flytekit 并行执行本地运行是一个更广泛项目的一部分,我们计划有一天进行该项目,但没有明确的时间表)。
不过,顺便说一句,截至撰写本文时(大约 2024 年初),我们正在稳步推进地图任务的新版本。如果可以的话,我建议改用这个。
from flytekit.experimental import map_task
在某些时候,主地图任务将变成这个(尽管我们将保留实验性导入以实现兼容性)。