fix: update redis cache when inserting collabs in batches
This commit is contained in:
parent
813179fdb0
commit
9971c23749
|
|
@ -256,6 +256,35 @@ impl CollabCache {
|
||||||
&self,
|
&self,
|
||||||
records: Vec<PendingCollabWrite>,
|
records: Vec<PendingCollabWrite>,
|
||||||
) -> Result<(), AppError> {
|
) -> Result<(), AppError> {
|
||||||
self.disk_cache.batch_insert_collab(records).await
|
let mem_cache_params: Vec<_> = records
|
||||||
|
.iter()
|
||||||
|
.map(|r| {
|
||||||
|
(
|
||||||
|
r.params.object_id.clone(),
|
||||||
|
r.params.encoded_collab_v1.clone(),
|
||||||
|
cache_exp_secs_from_collab_type(&r.params.collab_type),
|
||||||
|
)
|
||||||
|
})
|
||||||
|
.collect();
|
||||||
|
|
||||||
|
self.disk_cache.batch_insert_collab(records).await?;
|
||||||
|
|
||||||
|
let mem_cache = self.mem_cache.clone();
|
||||||
|
tokio::spawn(async move {
|
||||||
|
let now = chrono::Utc::now().timestamp();
|
||||||
|
for (oid, data, expire) in mem_cache_params {
|
||||||
|
if let Err(err) = mem_cache
|
||||||
|
.insert_encode_collab_data(&oid, &data, now, Some(expire))
|
||||||
|
.await
|
||||||
|
{
|
||||||
|
error!(
|
||||||
|
"Failed to insert collab `{}` into memory cache: {}",
|
||||||
|
oid, err
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue