You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ly...@apache.org on 2024/08/20 14:31:53 UTC

(incubator-devlake) 01/01: feat(framwork): add pipeline_id in task context

This is an automated email from the ASF dual-hosted git repository.

lynwee pushed a commit to branch dev-1
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 38ffe617429aec573f872afe2dbcd1cbd71784f9
Author: d4x1 <15...@qq.com>
AuthorDate: Tue Aug 20 22:31:40 2024 +0800

    feat(framwork): add pipeline_id in task context
---
 backend/server/services/pipeline_runner.go | 3 ++-
 backend/server/services/task.go            | 8 ++++----
 backend/server/services/task_runner.go     | 4 ++--
 3 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/backend/server/services/pipeline_runner.go b/backend/server/services/pipeline_runner.go
index b16dc2dc3..5b262b01c 100644
--- a/backend/server/services/pipeline_runner.go
+++ b/backend/server/services/pipeline_runner.go
@@ -35,11 +35,12 @@ type pipelineRunner struct {
 }
 
 func (p *pipelineRunner) runPipelineStandalone() errors.Error {
+	ctx := context.WithValue(context.Background(), "pipeline_id", p.pipeline.ID)
 	return runner.RunPipeline(
 		basicRes.ReplaceLogger(p.logger),
 		p.pipeline.ID,
 		func(taskIds []uint64) errors.Error {
-			return RunTasksStandalone(p.logger, taskIds)
+			return RunTasksStandalone(ctx, p.logger, taskIds)
 		},
 	)
 }
diff --git a/backend/server/services/task.go b/backend/server/services/task.go
index a416d88be..d15491d40 100644
--- a/backend/server/services/task.go
+++ b/backend/server/services/task.go
@@ -175,21 +175,21 @@ func CancelTask(taskId uint64) errors.Error {
 }
 
 // RunTasksStandalone run tasks in parallel
-func RunTasksStandalone(parentLogger log.Logger, taskIds []uint64) errors.Error {
+func RunTasksStandalone(ctx context.Context, parentLogger log.Logger, taskIds []uint64) errors.Error {
 	if len(taskIds) == 0 {
 		return nil
 	}
 	results := make(chan error)
 	for _, taskId := range taskIds {
-		go func(id uint64) {
+		go func(ctx context.Context, id uint64) {
 			taskLog.Info("run task #%d in background ", id)
 			var err errors.Error
-			taskErr := runTaskStandalone(parentLogger, id)
+			taskErr := runTaskStandalone(ctx, parentLogger, id)
 			if taskErr != nil {
 				err = errors.Default.Wrap(taskErr, fmt.Sprintf("Error running task %d.", id))
 			}
 			results <- err
-		}(taskId)
+		}(ctx, taskId)
 	}
 	errs := make([]error, 0)
 	var err error
diff --git a/backend/server/services/task_runner.go b/backend/server/services/task_runner.go
index 0ad643bf3..4cd1c0abd 100644
--- a/backend/server/services/task_runner.go
+++ b/backend/server/services/task_runner.go
@@ -96,13 +96,13 @@ func init() {
 	runningTasks.tasks = make(map[uint64]*RunningTaskData)
 }
 
-func runTaskStandalone(parentLog log.Logger, taskId uint64) errors.Error {
+func runTaskStandalone(ctx context.Context, parentLog log.Logger, taskId uint64) errors.Error {
 	// deferring cleaning up
 	defer func() {
 		_, _ = runningTasks.Remove(taskId)
 	}()
 	// for task cancelling
-	ctx, cancel := context.WithCancel(context.Background())
+	ctx, cancel := context.WithCancel(ctx)
 	err := runningTasks.Add(taskId, cancel)
 	if err != nil {
 		return err