ratchjob 0.2.1

一个rust实现的分布式任务调度平台服务。计划完全兼容xxl-job协议,然后再增强一些任务调度平台能力。
Documentation
use crate::job::model::job::JobInfo;
use serde::{Deserialize, Serialize};
use std::sync::Arc;

#[derive(Debug, Serialize, Deserialize, Default, Clone)]
#[serde(rename_all = "camelCase")]
pub struct JobRunParam {
    pub job_id: u64,
    pub log_id: u64,
    pub executor_handler: Option<Arc<String>>,
    pub executor_params: Option<Arc<String>>,
    pub executor_block_strategy: Option<String>,
    pub executor_timeout: Option<i32>,
    pub log_date_time: Option<u64>,
    pub glue_type: Option<String>,
    pub glue_source: Option<Arc<String>>,
    #[serde(rename(serialize = "glueUpdatetime", deserialize = "glueUpdatetime"))]
    pub glue_update_time: Option<u64>,
    pub broadcast_index: Option<u64>,
    pub broadcast_total: Option<u64>,
}

impl JobRunParam {
    pub fn from_job_info(log_id: u64, job_info: &Arc<JobInfo>) -> Self {
        Self {
            job_id: job_info.id,
            log_id,
            executor_handler: Some(job_info.handle_name.clone()),
            executor_params: Some(job_info.trigger_param.clone()),
            executor_block_strategy: Some(job_info.blocking_strategy.to_str().to_string()),
            executor_timeout: Some(job_info.timeout_second as i32),
            log_date_time: Some(job_info.last_modified_millis),
            glue_type: Some(job_info.run_mode.to_str().to_string()),
            glue_source: Some(job_info.trigger_param.clone()),
            glue_update_time: Some(job_info.last_modified_millis),
            broadcast_index: Some(0),
            broadcast_total: Some(0),
        }
    }
}

#[derive(Debug, Serialize, Deserialize, Default, Clone)]
#[serde(rename_all = "camelCase")]
pub struct JobLogParam {
    pub log_id: u64,
    #[serde(rename(serialize = "logDateTim", deserialize = "logDateTim"))]
    pub log_date_time: Option<u64>,
    pub from_line_num: i64,
}

#[derive(Debug, Serialize, Deserialize, Default, Clone)]
#[serde(rename_all = "camelCase")]
pub struct JobLogInfo {
    pub log_content: String,
    pub from_line_num: i64,
    pub to_line_num: i64,
    pub is_end: bool,
}