【发布时间】:2018-02-21 11:42:24
【问题描述】:
我正在尝试按顺序启动三个作业,但是当我尝试此代码时:
val jobs = Seq("stream.Job1","stream.Job2","stream.Job3")
Future.sequence {
jobs.map { jobClass =>
Future {
println(s"Starting the spark job from class $jobClass...")
% gcloud("sparkC", "jobs", "submit", "spark", s"--cluster=$clusterName", s"--class=$jobClass", "--region=global", s"--jars=$JarFile")
println(s"Starting the spark job from class $jobClass...DONE")
}
}
}
我同时获得这三个工作,然后是顺序的。
我认为解决方案是使用flatMap 但我无法实现它。
请帮忙。
【问题讨论】:
-
“并行,然后顺序”是什么意思?作业是否在完成一半时就停止了,然后将自己排成某种顺序队列?
-
您是否尝试运行依赖于输出三个作业的作业(并行运行)?
-
如果你想要顺序执行,你为什么还要使用 Future?
-
我想逐个工作(一个接一个)。当job1结束时job2开始