internal/proto/worker.proto (365 lines of code) (raw):
syntax = "proto2";
option go_package = "./schedulerx";
import "common.proto";
//Worker report heartbeat to Server
message WorkerHeartBeatRequest {
required string group_id = 1;
required string version = 2;
required string worker_id = 3;
optional string metrics_json = 4;
repeated int64 job_instance_id = 5;
optional string starter = 6;
optional int64 app_group_id = 7;
optional string source = 8;
optional string label = 9;
optional bool online = 10;
optional string app_key = 11;
optional int32 rpc_port = 12;
}
message WorkerHeartBeatResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
//TaskMaster start container
message MasterStartContainerRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
required int64 task_id = 3;
required int64 schedule_time = 4;
required int64 data_time = 5;
required string job_type = 6;
required string content = 7;
required string user = 8;
optional string parameters = 9;
required string instance_master_akka_path = 10;
optional string task_name = 11;
optional bytes task = 12;
optional int32 consumer_num = 13;
required string group_id = 14;
optional string instance_parameters = 15;
repeated UpstreamData upstreamData = 16;
optional int32 max_attempt = 17;
optional int32 attempt = 18;
optional int32 task_max_attempt = 19;
optional int32 task_attempt_interval = 20;
optional bool failover = 21 [default = false];
optional int64 wf_instance_id = 22;
optional int64 serial_num = 23;
optional string execute_mode = 24;
optional string job_name = 25;
optional int32 sharding_num = 26;
optional int32 time_type = 27;
optional string time_expression = 28;
optional string xattrs = 29;
optional string namespace = 30;
optional int32 trigger_type = 31;
optional string template = 32;
optional int64 app_group_id = 33;
}
message MasterStartContainerResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
//TaskMaster batch start containers
message MasterBatchStartContainersRequest {
required int64 job_instance_id = 1;
repeated MasterStartContainerRequest start_reqs = 2;
optional int64 job_id = 3;
optional int64 serial_num = 4;
}
message MasterBatchStartContainersResponse {
required bool success = 1;
optional string message = 2 [default = ""];
repeated int64 failed_taskIds = 3;
optional string metrics_json = 4;
}
//TaskMaster kill container
message MasterKillContainerRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
optional int64 task_id = 3;
optional string user = 4;
required bool mayInterruptIfRunning = 5;
optional int64 app_group_id = 6;
}
message MasterKillContainerResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
//TaskMaster destroy containerPool by jobInstance when finished
message MasterDestroyContainerPoolRequest {
required int64 job_instance_id = 1;
optional int64 job_id = 2;
optional string worker_id_addr = 3;
optional int64 delivery_id = 4;
optional bool already_unConfirm_retry = 5;
optional int64 serial_num = 6;
}
message MasterDestroyContainerPoolResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional int64 delivery_id = 3;
}
//TaskMaster check worker if alive
message MasterCheckWorkerAliveRequest {
required int64 job_instance_id = 1;
optional string dispatch_mode = 2;
}
message MasterCheckWorkerAliveResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional string metrics_json = 3;
}
//TaskMaster report job instance status to Server
message WorkerReportJobInstanceStatusRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
required int32 status = 3;
optional string result = 4;
optional string progress = 5;
optional int64 delivery_id = 6;
optional bool already_unConfirm_retry = 7;
optional string group_id = 8;
optional string traceId = 9;
}
message WorkerReportJobInstanceStatusResponse {
required bool success = 1;
optional string message = 2 [default = ""];
required int64 delivery_id = 3;
}
//TaskMaster report progress to Server
message WorkerReportJobInstanceProgressRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
required string progress = 3;
optional int32 trigger_times = 4;
}
message WorkerReportJobInstanceProgressResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
//ServerPersistence batch update task status, e.g. worker is down
message WorkerBatchUpdateTaskStatusRequest {
required int64 job_instance_id = 1;
required int32 status = 2;
optional string worker_addr = 3;
optional string worker_id = 4;
}
message WorkerBatchUpdateTaskStatusResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional int32 affect_cnt = 3;
}
// MapJobProcessor map tasks to MapTaskMaster
message WorkerMapTaskRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
required int64 task_id = 3;
required string task_name = 4;
repeated bytes task_body = 5;
}
message WorkerMapTaskResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional bool overload = 3;
}
// Worker clear tasks by jobInstanceId to Server
message WorkerClearTasksRequest {
required int64 job_instance_id = 1;
}
message WorkerClearTasksResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional int32 count = 3;
}
// Worker create a task to Server
message WorkerCreateTaskRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
required int64 task_id = 3;
required string task_name = 4;
required bytes task_body = 5;
optional int64 delivery_id = 6;
optional string label_map = 7;
}
message WorkerCreateTaskResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional int64 delivery_id = 3;
}
// Worker batch create tasks to Server
message WorkerBatchCreateTasksRequest {
required int64 job_instance_id = 1;
repeated WorkerCreateTaskRequest task = 2;
optional int64 delivery_id = 3;
optional string worker_id = 4;
optional string worker_addr = 5;
}
message WorkerBatchCreateTasksResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional int64 delivery_id = 3;
}
// Worker report task status to Server
message WorkerReportTaskStatusRequest {
required string unique_id = 1;
required int32 status = 2;
optional string worker_address = 3;
optional string worker_id = 4;
optional int64 delivery_id = 5;
required int64 job_instance_id = 6;
}
message WorkerReportTaskStatusResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional int64 delivery_id = 3;
}
// Worker batch report task statuses to Server
message WorkerBatchReportTaskStatuesRequest {
required int64 job_instance_id = 1;
repeated BatchTaskStatues task_statues = 2;
optional int64 delivery_id = 3;
optional bool already_unConfirm_retry = 4;
optional string group_id = 5;
}
message WorkerBatchReportTaskStatuesResponse{
required bool success = 1;
optional string message = 2 [default = ""];
optional int64 delivery_id = 3;
optional int32 affect_cnt = 4;
}
message BatchTaskStatues {
required int32 status = 1;
optional string worker_addr = 2;
optional string worker_id = 3;
repeated int64 task_ids = 4;
repeated TaskStatusInfo task_statues = 5;
}
// Worker report task status to Server
message WorkerReportTaskListStatusRequest {
required int64 job_instance_id = 1;
repeated int64 task_id = 2;
required int32 status = 3;
}
message WorkerReportTaskListStatusResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
// Worker report task progress to Server
message WorkerReportTaskProgressRequest {
required string unique_id = 1;
required float progress = 2;
}
message WorkerReportTaskProgressResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
// Worker pull tasks from Server
message TaskMessage {
required int64 task_id = 1;
required string task_name = 2;
required bytes task_body = 3;
}
message WorkerPullTasksRequest {
required int64 job_instance_id = 1;
required int32 page_size = 2;
}
message WorkerPullTasksResponse {
required bool success = 1;
optional string message = 2 [default = ""];
repeated TaskMessage task_message = 3;
}
// Worker query jobInstance status
message WorkerQueryJobInstanceStatusRequest {
required int64 job_instance_id = 1;
}
message WorkerQueryJobInstanceStatusResponse {
required bool success = 1;
optional string message = 2 [default = ""];
required int32 status = 3;
}
// Container report task status
message ContainerReportTaskStatusRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
required int64 task_id = 3;
required int32 status = 4;
required string worker_addr = 5;
required string worker_id = 6;
optional string result = 7;
optional string task_name = 8;
optional string instance_master_actorPath = 9;
optional int32 time_type = 10;
optional int64 serial_num = 11;
optional string progress = 12;
optional string traceId = 13;
}
message ContainerReportTaskStatusResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
message ContainerBatchReportTaskStatuesRequest {
required int64 job_id = 1;
required int64 job_instance_id = 2;
repeated TaskStatusInfo task_statues = 3;
required string task_master_akka_path = 4;
required string worker_addr = 5;
required string worker_id = 6;
optional int64 delivery_id = 7;
optional bool already_unConfirm_retry = 8;
optional int64 serial_num = 9;
optional string metrics_json = 10;
}
message TaskStatusInfo {
required int64 task_id = 1;
required int32 status = 2;
optional string result = 3;
optional string task_name = 4;
optional string progress = 5;
optional string traceId = 6;
}
message ContainerBatchReportTaskStatuesResponse {
required bool success = 1;
optional string message = 2 [default = ""];
optional int64 delivery_id = 3;
}
message ContainerCheckZombieRequest {
repeated int64 job_instance_id = 1;
}
message ContainerCheckZombieResponse {
repeated int64 zombie_job_instance_id = 1;
}
//Pull model, master notify all workers to init PullManager
message MasterNotifyWorkerPullRequest {
required int64 job_instance_id = 1;
required int32 page_size = 2;
required int32 queue_size = 3;
required int32 consumer_size = 4;
required string task_master_akka_path = 5;
optional int64 serial_num = 6;
}
message MasterNotifyWorkerPullResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}
//PullThread pull container requests from TaskMaster
message PullTaskFromMasterRequest {
required int64 job_instance_id = 1;
required int32 page_size = 2;
required string worker_id_addr = 3;
optional int64 serial_num = 4;
}
message PullTaskFromMasterResponse {
required bool success = 1;
optional string message = 2 [default = ""];
repeated MasterStartContainerRequest request = 3;
}
message WorkerOfflineRequest {
required int64 job_instance_id = 1;
required string worker_id_addr = 2;
required bool shutdown = 3;
}
message WorkerOfflineResponse {
required bool success = 1;
optional string message = 2 [default = ""];
}