ratchjob 0.2.1

一个rust实现的分布式任务调度平台服务。计划完全兼容xxl-job协议,然后再增强一些任务调度平台能力。
Documentation
use crate::common::share_data::ShareData;
use crate::metrics::model::{MetricsRequest, MetricsResponse};
use actix_web::{web, HttpResponse, Responder};
use std::sync::Arc;

pub(crate) async fn metrics_info(appdata: web::Data<Arc<ShareData>>) -> impl Responder {
    if let Ok(Ok(v)) = appdata.metrics_manager.send(MetricsRequest::Export).await {
        match v {
            MetricsResponse::ExportInfo(v) => HttpResponse::Ok().body(v),
            _ => HttpResponse::InternalServerError().body("metrics module disable"),
        }
    } else {
        HttpResponse::InternalServerError().body("request metrics_manager error")
    }
}

pub fn metrics_config(config: &mut web::ServiceConfig) {
    config
        .service(web::resource("/metrics").route(web::get().to(metrics_info)))
        .service(web::resource("/ratch/metrics").route(web::get().to(metrics_info)));
}