mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-01-11 05:54:30 +01:00
Merge #1473
1473: Update loop r=MarinPostma a=irevoire Co-authored-by: mpostma <postma.marin@protonmail.com>
This commit is contained in:
commit
83aef0a27d
@ -470,13 +470,6 @@ impl UpdateStore {
|
|||||||
|
|
||||||
txn.commit()?;
|
txn.commit()?;
|
||||||
|
|
||||||
uuids_to_remove
|
|
||||||
.iter()
|
|
||||||
.map(|uuid| update_uuid_to_file_path(&self.path, *uuid))
|
|
||||||
.for_each(|path| {
|
|
||||||
let _ = remove_file(path);
|
|
||||||
});
|
|
||||||
|
|
||||||
// If the currently processing update is from our index, we wait until it is
|
// If the currently processing update is from our index, we wait until it is
|
||||||
// finished before returning. This ensure that no write to the index occurs after we delete it.
|
// finished before returning. This ensure that no write to the index occurs after we delete it.
|
||||||
if let State::Processing(uuid, _) = *self.state.read() {
|
if let State::Processing(uuid, _) = *self.state.read() {
|
||||||
@ -486,6 +479,16 @@ impl UpdateStore {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Finally, remove any outstanding update files. This must be done after waiting for the
|
||||||
|
// last update to ensure that the update files are not deleted before the update needs
|
||||||
|
// them.
|
||||||
|
uuids_to_remove
|
||||||
|
.iter()
|
||||||
|
.map(|uuid| update_uuid_to_file_path(&self.path, *uuid))
|
||||||
|
.for_each(|path| {
|
||||||
|
let _ = remove_file(path);
|
||||||
|
});
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
use serde_json::json;
|
||||||
|
|
||||||
use crate::common::Server;
|
use crate::common::Server;
|
||||||
|
|
||||||
#[actix_rt::test]
|
#[actix_rt::test]
|
||||||
@ -23,3 +25,16 @@ async fn delete_unexisting_index() {
|
|||||||
|
|
||||||
assert_eq!(code, 404);
|
assert_eq!(code, 404);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[actix_rt::test]
|
||||||
|
async fn loop_delete_add_documents() {
|
||||||
|
let server = Server::new().await;
|
||||||
|
let index = server.index("test");
|
||||||
|
let documents = json!([{"id": 1, "field1": "hello"}]);
|
||||||
|
for _ in 0..50 {
|
||||||
|
let (response, code) = index.add_documents(documents.clone(), None).await;
|
||||||
|
assert_eq!(code, 202, "{}", response);
|
||||||
|
let (response, code) = index.delete().await;
|
||||||
|
assert_eq!(code, 204, "{}", response);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user