修复 DirectProject 异常历史收尾
异常收尾时尝试写入全部未完成消息 保留首个落盘错误并避免后续部分历史被丢弃
This commit is contained in:
@@ -41,8 +41,14 @@ pub(crate) fn persist_direct_project_partial_items_at(
|
||||
root: &Path,
|
||||
accumulator: &mut DirectProjectHistoryAccumulator,
|
||||
) -> Result<(), String> {
|
||||
for item in accumulator.take_partial_items() {
|
||||
append_direct_project_history_item_at(root, &item)?;
|
||||
let items = accumulator.take_partial_items().collect::<Vec<_>>();
|
||||
let mut first_error = None;
|
||||
for item in items {
|
||||
if let Err(error) = append_direct_project_history_item_at(root, &item) {
|
||||
if first_error.is_none() {
|
||||
first_error = Some(error);
|
||||
}
|
||||
}
|
||||
}
|
||||
Ok(())
|
||||
first_error.map_or(Ok(()), Err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user