mirror of
https://github.com/meilisearch/meilisearch.git
synced 2025-07-27 00:31:02 +00:00
Prefer using a global update callback common to all indexes
This commit is contained in:
@ -174,16 +174,10 @@ impl Data {
|
||||
inner: Arc::new(inner_data),
|
||||
};
|
||||
|
||||
for index_name in db.indexes_names().unwrap() {
|
||||
let callback_context = data.clone();
|
||||
let callback_name = index_name.clone();
|
||||
db.set_update_callback(
|
||||
index_name,
|
||||
Box::new(move |status| {
|
||||
index_update_callback(&callback_name, &callback_context, status);
|
||||
}),
|
||||
);
|
||||
}
|
||||
let callback_context = data.clone();
|
||||
db.set_update_callback(Box::new(move |index_name, status| {
|
||||
index_update_callback(&index_name, &callback_context, status);
|
||||
}));
|
||||
|
||||
data
|
||||
}
|
||||
|
@ -8,4 +8,4 @@ pub mod models;
|
||||
pub mod option;
|
||||
pub mod routes;
|
||||
|
||||
use self::data::Data;
|
||||
pub use self::data::Data;
|
||||
|
@ -7,6 +7,7 @@ use tide_log::RequestLogger;
|
||||
use meilidb_http::data::Data;
|
||||
use meilidb_http::option::Opt;
|
||||
use meilidb_http::routes;
|
||||
use meilidb_http::routes::index::index_update_callback;
|
||||
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
#[global_allocator]
|
||||
@ -16,8 +17,13 @@ pub fn main() -> Result<(), MainError> {
|
||||
env_logger::init();
|
||||
|
||||
let opt = Opt::new();
|
||||
|
||||
let data = Data::new(opt.clone());
|
||||
|
||||
let data_cloned = data.clone();
|
||||
data.db.set_update_callback(Box::new(move |name, status| {
|
||||
index_update_callback(name, &data_cloned, status);
|
||||
}));
|
||||
|
||||
let mut app = tide::App::with_state(data);
|
||||
|
||||
app.middleware(
|
||||
|
@ -69,15 +69,6 @@ pub async fn create_index(mut ctx: Context<Data>) -> SResult<Response> {
|
||||
Err(e) => return Err(ResponseError::create_index(e)),
|
||||
};
|
||||
|
||||
let callback_context = ctx.state().clone();
|
||||
let callback_name = index_name.clone();
|
||||
db.set_update_callback(
|
||||
&index_name,
|
||||
Box::new(move |status| {
|
||||
index_update_callback(&callback_name, &callback_context, status);
|
||||
}),
|
||||
);
|
||||
|
||||
let env = &db.env;
|
||||
let mut writer = env.write_txn().map_err(ResponseError::internal)?;
|
||||
|
||||
|
Reference in New Issue
Block a user