in internal/actor/container_actor.go [312:361]
func convertMasterStartContainerRequest2JobContext(req *schedulerx.MasterStartContainerRequest) (*jobcontext.JobContext, error) {
jobCtx := new(jobcontext.JobContext)
jobCtx.SetJobId(req.GetJobId())
jobCtx.SetJobInstanceId(req.GetJobInstanceId())
jobCtx.SetTaskId(req.GetTaskId())
jobCtx.SetScheduleTime(time.UnixMilli(req.GetScheduleTime()))
jobCtx.SetDataTime(time.UnixMilli(req.GetDataTime()))
jobCtx.SetExecuteMode(req.GetExecuteMode())
jobCtx.SetJobType(req.GetJobType())
jobCtx.SetContent(req.GetContent())
jobCtx.SetJobParameters(req.GetParameters())
jobCtx.SetInstanceParameters(req.GetInstanceParameters())
jobCtx.SetUser(req.GetUser())
jobCtx.SetInstanceMasterActorPath(req.GetInstanceMasterAkkaPath())
jobCtx.SetGroupId(req.GetGroupId())
jobCtx.SetMaxAttempt(req.GetMaxAttempt())
jobCtx.SetAttempt(req.GetAttempt())
jobCtx.SetTaskName(req.GetTaskName())
if req.GetTask() != nil {
jobCtx.SetTask(req.GetTask())
// If it's a sharding task, set the sharding id and sharding parameters.
shardingTask := new(common.ShardingTask)
if err := json.Unmarshal(req.GetTask(), shardingTask); err == nil {
jobCtx.SetShardingId(shardingTask.GetId())
jobCtx.SetShardingParameter(shardingTask.GetParameter())
}
} else {
jobCtx.SetShardingId(req.GetTaskId())
}
jobCtx.SetTaskMaxAttempt(req.GetTaskMaxAttempt())
jobCtx.SetTaskAttemptInterval(req.GetTaskAttemptInterval())
upstreamData := make([]*common.JobInstanceData, 0, len(req.GetUpstreamData()))
for _, data := range req.GetUpstreamData() {
jobInstanceData := new(common.JobInstanceData)
jobInstanceData.SetJobName(data.GetJobName())
jobInstanceData.SetData(data.GetData())
upstreamData = append(upstreamData, jobInstanceData)
}
jobCtx.SetUpstreamData(upstreamData)
jobCtx.SetWfInstanceId(req.GetWfInstanceId())
jobCtx.SetSerialNum(req.GetSerialNum())
jobCtx.SetJobName(req.GetJobName())
jobCtx.SetShardingNum(req.GetShardingNum())
jobCtx.SetTimeType(req.GetTimeType())
jobCtx.SetTimeExpression(req.GetTimeExpression())
jobCtx.Context = context.Background()
return jobCtx, nil
}