update hot_reload
This commit is contained in:
parent
1a199396c0
commit
7cad7fd365
5 changed files with 15 additions and 13 deletions
|
|
@ -49,7 +49,7 @@ futures-util = { version = "0.3.31", default-features = false }
|
|||
# config
|
||||
clap = { version = "4.5.20", features = ["std", "cargo", "wrap_help"] }
|
||||
toml = { version = "0.8.19", default-features = false, features = ["parse"] }
|
||||
hot_reload = "0.1.6"
|
||||
hot_reload = "0.1.8"
|
||||
serde_ignored = "0.1.10"
|
||||
|
||||
# logging
|
||||
|
|
|
|||
|
|
@ -8,17 +8,16 @@ pub struct ConfigTomlReloader {
|
|||
}
|
||||
|
||||
#[async_trait]
|
||||
impl Reload<ConfigToml> for ConfigTomlReloader {
|
||||
impl Reload<ConfigToml, String> for ConfigTomlReloader {
|
||||
type Source = String;
|
||||
async fn new(source: &Self::Source) -> Result<Self, ReloaderError<ConfigToml>> {
|
||||
async fn new(source: &Self::Source) -> Result<Self, ReloaderError<ConfigToml, String>> {
|
||||
Ok(Self {
|
||||
config_path: source.clone(),
|
||||
})
|
||||
}
|
||||
|
||||
async fn reload(&self) -> Result<Option<ConfigToml>, ReloaderError<ConfigToml>> {
|
||||
let conf = ConfigToml::new(&self.config_path)
|
||||
.map_err(|_e| ReloaderError::<ConfigToml>::Reload("Failed to reload config toml"))?;
|
||||
async fn reload(&self) -> Result<Option<ConfigToml>, ReloaderError<ConfigToml, String>> {
|
||||
let conf = ConfigToml::new(&self.config_path).map_err(|e| ReloaderError::<ConfigToml, String>::Reload(e.to_string()))?;
|
||||
Ok(Some(conf))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -40,10 +40,13 @@ fn main() {
|
|||
std::process::exit(1);
|
||||
}
|
||||
} else {
|
||||
let (config_service, config_rx) =
|
||||
ReloaderService::<ConfigTomlReloader, ConfigToml>::new(&parsed_opts.config_file_path, CONFIG_WATCH_DELAY_SECS, false)
|
||||
.await
|
||||
.unwrap();
|
||||
let (config_service, config_rx) = ReloaderService::<ConfigTomlReloader, ConfigToml, String>::new(
|
||||
&parsed_opts.config_file_path,
|
||||
CONFIG_WATCH_DELAY_SECS,
|
||||
false,
|
||||
)
|
||||
.await
|
||||
.unwrap();
|
||||
|
||||
tokio::select! {
|
||||
config_res = config_service.start() => {
|
||||
|
|
@ -246,7 +249,7 @@ async fn rpxy_service_without_watcher(
|
|||
}
|
||||
|
||||
async fn rpxy_service_with_watcher(
|
||||
mut config_rx: ReloaderReceiver<ConfigToml>,
|
||||
mut config_rx: ReloaderReceiver<ConfigToml, String>,
|
||||
runtime_handle: tokio::runtime::Handle,
|
||||
) -> Result<(), anyhow::Error> {
|
||||
info!("Start rpxy service with dynamic config reloader");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue