0

私はこのコードを持っています:

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 clonerepos.size() と同じ回数だけコマンドを実行する必要がありますが、そうではありません。毎回ランダムな回数実行されます。

そのeachループは単一のタスクとしてバックグラウンドで実行する必要があり、git cloneコマンドは並行して実行されるようです。

4

1 に答える 1