-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtask.proto
127 lines (114 loc) · 3.07 KB
/
task.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
syntax = "proto3";
package lebai.task;
import "google/protobuf/empty.proto";
import "google/protobuf/timestamp.proto";
// 任务类型
enum TaskKind {
// Lua
LUA = 0;
// 应用程序
APP = 10;
}
// 任务运行状态
enum TaskState {
// 等待启动运行
NONE = 0;
// 运行中
RUNNING = 1;
// 已暂停
PAUSE = 2;
// 运行成功
SUCCESS = 3;
// 用户主动停止
INTERRUPT = 4;
// 运行失败
FAIL = 5;
// 等待启动运行
WAIT = 10;
// 开始运行,已弃用
BEGIN = 11;
// 任务停止中
INTERRUPTING = 14;
}
message TaskIndex {
uint32 id = 1;
}
message Task {
uint32 id = 1;
// 代码高亮块ID
string block_id = 10 [json_name = "block_id"];
// 事件ID,已弃用
uint32 event_id = 11 [json_name = "event_id"];
// 任务运行状态
TaskState state = 12;
// 已完成的循环次数
uint32 loop_count = 13 [json_name = "loop_count"];
// 循环次数,0为无限循环
uint32 loop_to = 14 [json_name = "loop_to"];
// 是否以子任务形式同时运行多个任务
bool is_parallel = 15 [json_name = "is_parallel"];
// 是否为仿真模式
bool is_simu = 16 [json_name = "is_simu"];
// 输出
string stdout = 17;
// 启动运行时间
google.protobuf.Timestamp started_at = 18 [json_name = "started_at"];
// 结束运行时间
google.protobuf.Timestamp ended_at = 19 [json_name = "ended_at"];
// 暂停运行时间
google.protobuf.Timestamp pause_at = 20 [json_name = "pause_at"];
// 之前总共暂停用时ms,不包括本次暂停
uint32 pre_pause = 21 [json_name = "pre_pause"];
// 任务类型
TaskKind kind = 30;
// 任务存储目录
string dir = 31;
// 任务名称
string name = 32;
// 任务运行参数
repeated string params = 33;
}
message TaskIds {
repeated uint32 ids = 1;
}
message Tasks {
repeated Task tasks = 1;
}
message TaskStdout {
uint32 id = 1;
bool done = 11;
string stdout = 12;
}
message StartTaskRequest {
string name = 1;
// 是否以子任务形式同时运行多个任务
bool is_parallel = 2 [json_name = "is_parallel"];
// 循环次数,默认0永久循环运行
uint32 loop_to = 3 [json_name = "loop_to"];
string dir = 11;
TaskKind kind = 12;
repeated string params = 22;
}
// 任务相关服务
service TaskService {
// 查询任务
rpc LoadTask(TaskIndex) returns (Task);
// 查询任务列表
rpc LoadTaskList(google.protobuf.Empty) returns (TaskIds);
// 查询运行中的任务列表
rpc LoadRunningTasks(google.protobuf.Empty) returns (Tasks);
// 启动新任务
rpc StartTask(StartTaskRequest) returns (TaskIndex);
// 获取任务输出
rpc GetTaskStdout(TaskIndex) returns (TaskStdout);
// 订阅任务输出流
rpc SubTaskStdout(TaskIndex) returns (stream TaskStdout);
// 等待运动完成
rpc WaitTask(TaskIndex) returns (TaskStdout);
// 暂停任务与运动
rpc PauseTask(TaskIndex) returns (google.protobuf.Empty);
// 恢复任务与运动
rpc ResumeTask(TaskIndex) returns (google.protobuf.Empty);
// 取消任务与运动
rpc CancelTask(TaskIndex) returns (google.protobuf.Empty);
}