我有这段代码:
class GitDownloader extends DefaultActor {
private String dir
@Override
protected void act() {
loop {
react {
repos -> if (repos instanceof String[])
println "Total Repos: ${repos.size()}"
repos.each {
repo ->
"git clone ssh://git@bar-src.foo.com/${repo} ${dir}/${repo.split("/").last()}".execute()
}
}
}
}
}
我这样开始:
def gitDownloader = new GitDownloader(dir: sourceCodeFolder)
gitDownloader.start()
gitDownloader << repositories
问题是任务以随机顺序执行。它应该git clone
像 repos.size() 一样多次运行该命令,但事实并非如此。它每次运行随机次数。
该each
循环应该作为单个任务在后台执行,似乎git clone
命令是并行执行的。