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
をせずにバックグラウンドタスク(アップロード)の完了を待ちます。
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フォルダー削除~起動~プラットフォーム切り替え~を行うパイプラインを組んで毎日ビルドしています。