Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
0c43d95956
|
@@ -75,27 +75,25 @@ async fn release_inner(
|
|||||||
cloud_context:&rbx_asset::cloud::Context,
|
cloud_context:&rbx_asset::cloud::Context,
|
||||||
cloud_context_luau_execution:&rbx_asset::cloud::Context,
|
cloud_context_luau_execution:&rbx_asset::cloud::Context,
|
||||||
load_asset_version_runtime:&rbx_asset::cloud::LuauSessionLatestRequest,
|
load_asset_version_runtime:&rbx_asset::cloud::LuauSessionLatestRequest,
|
||||||
submissions:&crate::grpc::submissions::Service,
|
submissions_service:&crate::grpc::submissions::Service,
|
||||||
)->Result<(),InnerError>{
|
)->Result<(),InnerError>{
|
||||||
let available_parallelism=std::thread::available_parallelism().map_err(InnerError::Io)?.get();
|
let available_parallelism=std::thread::available_parallelism().map_err(InnerError::Io)?.get();
|
||||||
// set up futures
|
// set up futures
|
||||||
|
|
||||||
// unnecessary allocation :(
|
let submissions=&release_info.Submissions;
|
||||||
let asset_versions:Vec<_> =release_info
|
|
||||||
.Submissions
|
|
||||||
.iter()
|
|
||||||
.map(|submission|rbx_asset::cloud::GetAssetVersionRequest{
|
|
||||||
asset_id:submission.ModelID,
|
|
||||||
version:submission.ModelVersion,
|
|
||||||
})
|
|
||||||
.enumerate()
|
|
||||||
.collect();
|
|
||||||
|
|
||||||
// fut_download
|
// fut_download
|
||||||
let fut_download=futures::stream::iter(asset_versions)
|
let fut_download=futures::stream::iter(submissions)
|
||||||
.map(|(index,asset_version)|async move{
|
.enumerate()
|
||||||
let modes=download_fut(cloud_context,asset_version).await;
|
.map(|(index,submission)|{
|
||||||
(index,modes)
|
let asset_version=rbx_asset::cloud::GetAssetVersionRequest{
|
||||||
|
asset_id:submission.ModelID,
|
||||||
|
version:submission.ModelVersion,
|
||||||
|
};
|
||||||
|
async move{
|
||||||
|
let modes=download_fut(cloud_context,asset_version).await;
|
||||||
|
(index,modes)
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.buffer_unordered(available_parallelism.min(MAX_PARALLEL_DECODE))
|
.buffer_unordered(available_parallelism.min(MAX_PARALLEL_DECODE))
|
||||||
.collect::<Vec<(usize,Result<_,DownloadFutError>)>>();
|
.collect::<Vec<(usize,Result<_,DownloadFutError>)>>();
|
||||||
@@ -104,7 +102,7 @@ async fn release_inner(
|
|||||||
let fut_load_asset_versions=load_asset_versions(
|
let fut_load_asset_versions=load_asset_versions(
|
||||||
cloud_context_luau_execution,
|
cloud_context_luau_execution,
|
||||||
load_asset_version_runtime,
|
load_asset_version_runtime,
|
||||||
release_info.Submissions.iter().map(|submission|submission.UploadedAssetID),
|
submissions.iter().map(|submission|submission.UploadedAssetID),
|
||||||
);
|
);
|
||||||
|
|
||||||
// execute futures
|
// execute futures
|
||||||
@@ -113,7 +111,7 @@ async fn release_inner(
|
|||||||
let load_asset_versions=load_asset_versions_result.map_err(InnerError::LoadAssetVersions)?;
|
let load_asset_versions=load_asset_versions_result.map_err(InnerError::LoadAssetVersions)?;
|
||||||
|
|
||||||
// sanity check roblox output
|
// sanity check roblox output
|
||||||
if load_asset_versions.len()!=release_info.Submissions.len(){
|
if load_asset_versions.len()!=submissions.len(){
|
||||||
return Err(InnerError::LoadAssetVersionsListLength);
|
return Err(InnerError::LoadAssetVersionsListLength);
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -127,7 +125,7 @@ async fn release_inner(
|
|||||||
match result{
|
match result{
|
||||||
Ok(value)=>modes.push(value),
|
Ok(value)=>modes.push(value),
|
||||||
Err(error)=>errors.push(ErrorContext{
|
Err(error)=>errors.push(ErrorContext{
|
||||||
submission_id:release_info.Submissions[index].SubmissionID,
|
submission_id:submissions[index].SubmissionID,
|
||||||
error:error,
|
error:error,
|
||||||
}),
|
}),
|
||||||
}
|
}
|
||||||
@@ -144,7 +142,7 @@ async fn release_inner(
|
|||||||
.zip(modes)
|
.zip(modes)
|
||||||
.zip(load_asset_versions)
|
.zip(load_asset_versions)
|
||||||
.map(|((submission,modes),asset_version)|async move{
|
.map(|((submission,modes),asset_version)|async move{
|
||||||
let result=submissions.set_status_released(rust_grpc::validator::SubmissionReleaseRequest{
|
let result=submissions_service.set_status_released(rust_grpc::validator::SubmissionReleaseRequest{
|
||||||
submission_id:submission.SubmissionID,
|
submission_id:submission.SubmissionID,
|
||||||
map_create:Some(rust_grpc::maps_extended::MapCreate{
|
map_create:Some(rust_grpc::maps_extended::MapCreate{
|
||||||
id:submission.UploadedAssetID as i64,
|
id:submission.UploadedAssetID as i64,
|
||||||
|
|||||||
Reference in New Issue
Block a user