mirror of
https://github.com/sadoyan/aralez.git
synced 2026-04-30 14:58:38 +08:00
File watcher improvements
This commit is contained in:
@@ -30,7 +30,6 @@ struct TaggedAddress {
|
||||
pub async fn start(fp: String, mut toreturn: Sender<Configuration>) {
|
||||
let config = load_configuration(fp.as_str(), "filepath");
|
||||
let headers = DashMap::new();
|
||||
|
||||
match config {
|
||||
Some(config) => {
|
||||
if config.typecfg.to_string() != "consul" {
|
||||
@@ -55,7 +54,6 @@ pub async fn start(fp: String, mut toreturn: Sender<Configuration>) {
|
||||
}
|
||||
let consul_data = servers.get(num).unwrap().to_string();
|
||||
let upstreams = consul_request(consul_data, consul.services.clone(), consul.token.clone());
|
||||
|
||||
match upstreams.await {
|
||||
Some(upstreams) => {
|
||||
if !compare_dashmaps(&upstreams, &prev_upstreams) {
|
||||
|
||||
@@ -2,7 +2,7 @@ use crate::utils::parceyaml::load_configuration;
|
||||
use crate::utils::structs::Configuration;
|
||||
use futures::channel::mpsc::Sender;
|
||||
use futures::SinkExt;
|
||||
use log::{error, info};
|
||||
use log::{error, info, warn};
|
||||
use notify::event::ModifyKind;
|
||||
use notify::{Config, Event, EventKind, RecommendedWatcher, RecursiveMode, Watcher};
|
||||
use pingora::prelude::sleep;
|
||||
@@ -15,10 +15,15 @@ pub async fn start(fp: String, mut toreturn: Sender<Configuration>) {
|
||||
let file_path = fp.as_str();
|
||||
let parent_dir = Path::new(file_path).parent().unwrap();
|
||||
let (local_tx, mut local_rx) = tokio::sync::mpsc::channel::<notify::Result<Event>>(1);
|
||||
info!("Watching for changes in {:?}", parent_dir);
|
||||
let snd = load_configuration(file_path, "filepath");
|
||||
|
||||
match snd {
|
||||
Some(snd) => {
|
||||
if snd.typecfg != "file" {
|
||||
warn!("Disabling file watcher, requested discovery type is: {}", snd.typecfg);
|
||||
return;
|
||||
}
|
||||
info!("Watching for changes in {:?}", parent_dir);
|
||||
toreturn.send(snd).await.unwrap();
|
||||
}
|
||||
None => {}
|
||||
|
||||
@@ -44,6 +44,7 @@ pub struct PathConfig {
|
||||
pub servers: Vec<String>,
|
||||
pub headers: Option<Vec<String>>,
|
||||
}
|
||||
#[derive(Debug)]
|
||||
pub struct Configuration {
|
||||
pub upstreams: UpstreamsDashMap,
|
||||
pub headers: Headers,
|
||||
|
||||
Reference in New Issue
Block a user