私はこのコードを持っています:
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
コマンドは並行して実行されるようです。