アーカイブを作成して戦争をしてから、別の名前の別のコピーを使いたいと思っています。私はそのコピータスクがこのかなり大きなビルドの残りの部分を減速させたくないということです。それを非同期に実行することは可能ですか?もしそうなら、どうですか?非同期グラデルコピータスク?
答えて
import java.util.concurrent.*
...
def es = Executors.newSingleThreadExecutor()
...
war {
...
doLast{
es.submit({
copy {
from destinationDir.absolutePath + File.separator + "$archiveName"
into destinationDir
rename "${archiveName}", "${baseName}.${extension}"
}
} as Callable)
}
}
そうでしょうか?できます。ファイルはコピーされますが、実際に非同期コピーであるかどうかを調べる方法はIDKにあります。 – user447607
doLastは、他のことが起こる前にそれを止めないようにします。コピーが必要な戦争の創造のように。 – user447607
上記を読んで、私は自分の質問にちょうど答えました。 – user447607
場合によってはparallel execution featureを使用すると便利です。これはマルチプロジェクトビルドでのみ機能します(並列実行するタスクは別々のプロジェクトになければなりません)。
project('first') {
task copyHugeFile(type: Copy) {
from "path/to/huge/file"
destinationDir buildDir
doLast {
println 'The file is copied'
}
}
}
project('second') {
task printMessage1 << {
println 'Message1'
}
task printMessage2 << {
println 'Message2'
}
}
task runAll {
dependsOn ':first:copyHugeFile'
dependsOn ':second:printMessage1'
dependsOn ':second:printMessage2'
}
デフォルト出力:
$ gradle runAll
:first:copyHugeFile
The file is copied
:second:printMessage1
Message1
:second:printMessage2
Message2
:runAll
出力--parallel
と:
$ gradle runAll --parallel
Parallel execution is an incubating feature.
:first:copyHugeFile
:second:printMessage1
Message1
:second:printMessage2
Message2
The file is copied
:runAll
dbUnitの技術負債のために使用することはできません。実際にファイルを並行してコピーすることができない理由は本当にありませんので、私はそれを書くことを好みます。 – user447607
- 1. 非同期メソッド非同期に新
- 2. 非同期操作と非同期ネットワークタスク?
- 3. NodeJs - 非同期/非同期/待機中
- 4. 非同期ループ内の非同期メソッド
- 5. 春非同期 - 非同期豆に
- 6. 非同期メソッドの非同期メソッド
- 7. 非同期、非同期待機
- 8. 非同期/同期ループNode.js
- 9. 非同期ソケットと同期
- 10. 非同期イベントの同期
- 11. Node.jsの非同期/同期
- 12. リクエストレスポンモデル/同期/非同期/イベントドリブン
- 13. Laravelジョブクエリ非同期/同期?
- 14. 「非同期キーワード非同期」関数を「非同期キーワード非同期」関数に変換できますか?
- 15. グラデルコピータスク:グラントのマイグレーション
- 16. 非同期ブロック
- 17. 非同期データローディング
- 18. 非同期タスク
- 19. 非同期レイジータイムアウトタスク
- 20. 非同期コンテキストマネージャ
- 21. 非同期MySQL
- 22. 非同期プロセスコール
- 23. 非同期ロードジェネレータ
- 24. マルチソケット(非同期)
- 25. 非同期パススルーメソッド
- 26. 非同期タスクデータフェッチャー
- 27. 非同期クエリ
- 28. 非同期パネルバインディングエラー
- 29. 非同期コール
- 30. 非同期HttpWebRequest
ないアイデアは、これが実際に動作するかどうかが、あなたはそれを試してみることができます。http:/ /stackoverflow.com/a/38528039/745574 – RaGe
本当に素敵な@RaGe、これを見つけてくれてありがとう! – Opal
私はこれが働いていると思います。みんなありがとう。あなたは答えとして投稿しますか? – user447607