Unity Accelerator アップロード完了まで待つ
Editorのクリーン起動をしたりReimport
を行ってもキャッシュサーバーのキャッシュは少しずつしか増えない。
Acceleratorには強制アップロードのような機能は現時点でないため完了を待つしかない。
ログを見てもエラー内容の説明がないため原因もわからずです。
{
"level": "debug",
"ts": "2023-02-03T10:28:42.446Z",
"msg": "handled getRequest",
"agent_id": "unitytechnologies-accelerator1_id",
"agent_name": "unitytechnologies-accelerator1",
"component": "pbservice",
"subprocess_id": 6,
"conn_id": 11,
"remote": "hoge",
"segment_id": 11952,
"namespace": "defaultmetadata",
"key": "df4c38c695e1dbbf0361f5687a17e055",
"status": "key not found",
"status_code": 3,
"size": 0,
"blob_hash": 0
},
フォーラムでアップロードの完了を待つ方法が紹介されていました。
batchmode
でquit
をせずにバックグラウンドタスク(アップロード)の完了を待ちます。
forum.unity.com
public static async void RunAndQuit()
{
try {
await UniTask.Delay(1000);
var delayCount = 0;
while (Progress.running) {
delayCount++;
if (delayCount % 5 == 0) {
Debug.Log($"Waiting background tasks ... ({Progress.GetCount()} tasks)");
}
await UniTask.Delay(1000);
}
Debug.Log($"{nameof(CacheUploadWaitRunner)}.Run() is complete. ({EditorUserBuildSettings.activeBuildTarget})");
} catch(Exception e) {
Debug.LogException(e);
EditorApplication.Exit(-1);
return;
}
EditorApplication.Exit(0);
}
あまりキャッシュされてないサーバーへのアップロードには5時間半
もかかりました。
通常2時間半
ほどインポートに時間を要していたプロジェクトでは、
それ以降インポートが30分~40分
ほどになりました。
インポート中のログ
...
Artifact(artifact id=hoge, static dependencies=fuga, content hash=puyo) uploaded to cacheserver
Artifact(artifact id=hoge, static dependencies=fuga, content hash=puyo) uploaded to cacheserver
waiting background tasks ... (1 tasks)
Artifact(artifact id=hoge, static dependencies=fuga, content hash=puyo) uploaded to cacheserver
Artifact(artifact id=hoge, static dependencies=fuga, content hash=puyo) uploaded to cacheserver
...
すべてを一度ではアップロードできないようなので、
Libraryフォルダー削除~起動~プラットフォーム切り替え~を行うパイプラインを組んで毎日ビルドしています。