mirror of
https://github.com/meilisearch/MeiliSearch
synced 2025-07-04 20:37:15 +02:00
implement snapshot scheduler
This commit is contained in:
parent
2f418ee767
commit
ee838be41b
3 changed files with 67 additions and 9 deletions
48
meilisearch-http/src/index_controller/snapshot.rs
Normal file
48
meilisearch-http/src/index_controller/snapshot.rs
Normal file
|
@ -0,0 +1,48 @@
|
|||
use std::path::PathBuf;
|
||||
use std::time::Duration;
|
||||
|
||||
use tokio::time::interval;
|
||||
|
||||
use super::index_actor::IndexActorHandle;
|
||||
use super::update_actor::UpdateActorHandle;
|
||||
use super::uuid_resolver::UuidResolverHandle;
|
||||
|
||||
#[allow(dead_code)]
|
||||
pub struct SnapshotService<B> {
|
||||
index_handle: IndexActorHandle,
|
||||
uuid_resolver_handle: UuidResolverHandle,
|
||||
update_handle: UpdateActorHandle<B>,
|
||||
snapshot_period: Duration,
|
||||
snapshot_path: PathBuf,
|
||||
}
|
||||
|
||||
impl<B> SnapshotService<B> {
|
||||
pub fn new(
|
||||
index_handle: IndexActorHandle,
|
||||
uuid_resolver_handle: UuidResolverHandle,
|
||||
update_handle: UpdateActorHandle<B>,
|
||||
snapshot_period: Duration,
|
||||
snapshot_path: PathBuf,
|
||||
) -> Self {
|
||||
Self {
|
||||
index_handle,
|
||||
uuid_resolver_handle,
|
||||
update_handle,
|
||||
snapshot_period,
|
||||
snapshot_path,
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn run(self) {
|
||||
let mut interval = interval(self.snapshot_period);
|
||||
|
||||
loop {
|
||||
interval.tick().await;
|
||||
self.perform_snapshot().await;
|
||||
}
|
||||
}
|
||||
|
||||
async fn perform_snapshot(&self) {
|
||||
println!("performing snapshot in {:?}", self.snapshot_path);
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue