gzip the tasks

This commit is contained in:
Tamo 2023-11-29 13:09:04 +01:00 committed by Clément Renault
parent 547379abb0
commit be72326c0a
No known key found for this signature in database
GPG Key ID: F250A4C4E3AE5F5F
4 changed files with 12 additions and 4 deletions

5
Cargo.lock generated
View File

@ -1680,9 +1680,9 @@ dependencies = [
[[package]] [[package]]
name = "flate2" name = "flate2"
version = "1.0.26" version = "1.0.28"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" checksum = "46303f565772937ffe1d394a4fac6f411c6013172fadde9dcdb1e147a086940e"
dependencies = [ dependencies = [
"crc32fast", "crc32fast",
"miniz_oxide", "miniz_oxide",
@ -2777,6 +2777,7 @@ dependencies = [
"dump", "dump",
"enum-iterator", "enum-iterator",
"file-store", "file-store",
"flate2",
"insta", "insta",
"log", "log",
"meili-snap", "meili-snap",

View File

@ -18,6 +18,7 @@ derive_builder = "0.12.0"
dump = { path = "../dump" } dump = { path = "../dump" }
enum-iterator = "1.4.0" enum-iterator = "1.4.0"
file-store = { path = "../file-store" } file-store = { path = "../file-store" }
flate2 = "1.0.28"
log = "0.4.17" log = "0.4.17"
meilisearch-auth = { path = "../meilisearch-auth" } meilisearch-auth = { path = "../meilisearch-auth" }
meilisearch-types = { path = "../meilisearch-types" } meilisearch-types = { path = "../meilisearch-types" }

View File

@ -45,6 +45,8 @@ use dump::{KindDump, TaskDump, UpdateFile};
pub use error::Error; pub use error::Error;
pub use features::RoFeatures; pub use features::RoFeatures;
use file_store::FileStore; use file_store::FileStore;
use flate2::bufread::GzEncoder;
use flate2::Compression;
use meilisearch_types::error::ResponseError; use meilisearch_types::error::ResponseError;
use meilisearch_types::features::{InstanceTogglableFeatures, RuntimeTogglableFeatures}; use meilisearch_types::features::{InstanceTogglableFeatures, RuntimeTogglableFeatures};
use meilisearch_types::heed::byteorder::BE; use meilisearch_types::heed::byteorder::BE;
@ -1288,7 +1290,10 @@ impl IndexScheduler {
buffer.push(b'\n'); buffer.push(b'\n');
} }
let _ = ureq::post(url).send_bytes(&buffer).unwrap(); let reader = GzEncoder::new(&buffer[..], Compression::default());
if let Err(e) = ureq::post(url).set("Content-Encoding", "gzip").send(reader) {
log::error!("While sending data to the webhook: {e}");
}
} }
Ok(()) Ok(())

View File

@ -11,6 +11,7 @@ use actix_web::{post, App, HttpResponse, HttpServer};
use meili_snap::{json_string, snapshot}; use meili_snap::{json_string, snapshot};
use meilisearch::Opt; use meilisearch::Opt;
use tokio::sync::mpsc; use tokio::sync::mpsc;
use url::Url;
use crate::common::{default_settings, Server}; use crate::common::{default_settings, Server};
use crate::json; use crate::json;
@ -66,7 +67,7 @@ async fn test_basic_webhook() {
let db_path = tempfile::tempdir().unwrap(); let db_path = tempfile::tempdir().unwrap();
let server = Server::new_with_options(Opt { let server = Server::new_with_options(Opt {
task_webhook_url: Some(url), task_webhook_url: Some(Url::parse(&url).unwrap()),
..default_settings(db_path.path()) ..default_settings(db_path.path())
}) })
.await .await