history/task/task.proto
syntax = "proto3";
package jsgenerate_kb2022.history.task;
option go_package = "gateway/protocol/history/task";
import "google/api/annotations.proto";
import "adadd52b-e7a2-4fe2-9f15-356ceddbd4f6/utils/utils.proto";
// 供用戶查詢一些 任務 的 歷史數據
service Task {
// 查找任務調度器
rpc FindScheduler(FindSchedulerRequest) returns (FindSchedulerResponse){
option (google.api.http) = {
get: "/api/v1/history/task/schedulers"
};
}
// 返回調度器的所有日誌
rpc ByScheduler (BySchedulerRequest) returns (BySchedulerResponse){
option (google.api.http) = {
get: "/api/v1/history/task/loggers/by_scheduler"
};
}
// 查找調度器的執行日誌
rpc FindLogger (FindLoggerRequest) returns (FindLoggerResponse){
option (google.api.http) = {
get: "/api/v1/history/task/loggers"
};
}
}
// 調度器
message Scheduler{
// 調度器 id
int64 id = 1;
// 所屬於 任務 id,此值可能重複因爲來源 source 不同的任務間 id 是不相干的故可能出現重複
int64 task = 2 ;
// 調度開始時間 unix
int64 start = 3;
// 調度結束時間 unix
int64 stop = 4;
// 來源
// * 100 音頻任務 -> 流程任務
// * 110 音頻任務 -> 檔案直播
// * 120 音頻任務 -> 即時直播
// * 130 音頻任務 -> 點播
uint32 source = 5;
// 任務優先度
int32 priority = 8;
// 任務級別
int32 level = 9;
// 任務目標 邏輯碼
repeated string targets = 10;
}
message FindSchedulerRequest{
jsgenerate_kb2022.utils.FindLimit limit = 1;
// id not in (...)
repeated int64 notID = 50;
// 調度器 id in
repeated int64 id = 2;
// 所屬於 任務 id in
repeated int64 task = 3;
// 來源 in
repeated uint32 source = 4;
// 任務優先度
repeated int32 priority = 5;
// 任務級別
repeated int32 level = 6;
// 如果 >0 返回 開始時間 unix >= afterStart 的調度器
int64 afterStart = 10;
// 如果 >0 返回 開始時間 unix <= beforeStart 的調度器
int64 beforeStart = 11;
// 如果 >0 返回 結束時間 unix >= afterStop 的調度器
int64 afterStop = 12;
// 如果 >0 返回 結束時間 unix <= beforeStop 的調度器
int64 beforeStop = 13;
// 如果爲非空數組 只查找包含這些 邏輯碼 的調度器
repeated string targets = 20;
}
message FindSchedulerResponse{
jsgenerate_kb2022.utils.FindResult result = 1;
repeated Scheduler data = 2;
}
message Logger{
// 日誌 id
int64 id = 1;
// 日誌所屬 調度器 id,用於過濾具體哪次任務執行的日誌
int64 scheduler = 2;
// 日誌等級,用於確定日誌重要性
// * 1 Debug 用於 開發/測試/排錯 時使用,在寫入 Debug 日誌時,系統不會保證寫入成功
// * 2 Info 一般信息,通常是任務執行中的一些狀態變化,比例流程任務中播放了新的音樂,會任務停止之類的通常信息
// * 3 Warn 警告,這通常是在執行時發生了錯誤,例如一個流程任務使用了三首音頻資產,其中一個資產已經損毀無法播放,但這不會影響另外兩個資產的播放
// * 4 Error 錯誤,系統發生了嚴重的錯誤,任務很可能無法正常執行,例如發生了網路故障,系統無法將任務推送給後端設備進行執行
int32 level = 3;
// 日誌創建時間 unix
int64 createAt = 4;
// 日誌包含的文本信息
string message = 5;
}
message BySchedulerRequest{
int64 scheduler=1;
}
message BySchedulerResponse{
repeated Logger data = 1;
}
message FindLoggerRequest{
jsgenerate_kb2022.utils.FindLimit limit = 1;
// id not in (...)
repeated int64 notID = 50;
// 任務id in
repeated int64 id = 2;
// 所屬於 調度器 id in
repeated int64 scheduler = 3;
// 日誌等級 in
repeated int32 level = 4;
// 如果 >0 返回 創建時間 unix >= createAt 的日誌
int64 after = 10;
// 如果 >0 返回 創建時間 unix <= createAt 的日誌
int64 before = 11;
}
message FindLoggerResponse{
jsgenerate_kb2022.utils.FindResult result = 1;
repeated Logger data = 2;
}