You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by li...@apache.org on 2023/03/27 14:09:35 UTC
[incubator-devlake] branch main updated: fix: fix cron (#4787)
This is an automated email from the ASF dual-hosted git repository.
likyh pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new e6d3313aa fix: fix cron (#4787)
e6d3313aa is described below
commit e6d3313aaab43a68bd820c3a19044b50d98baa37
Author: mappjzc <zh...@merico.dev>
AuthorDate: Mon Mar 27 22:09:16 2023 +0800
fix: fix cron (#4787)
Fix cron use error blueprint to run pipelines.
Nddtfjiang <zh...@merico.dev>
---
backend/server/services/blueprint.go | 29 +++++++++++++++++++++--------
1 file changed, 21 insertions(+), 8 deletions(-)
diff --git a/backend/server/services/blueprint.go b/backend/server/services/blueprint.go
index 17819f133..7b24b4814 100644
--- a/backend/server/services/blueprint.go
+++ b/backend/server/services/blueprint.go
@@ -43,6 +43,20 @@ var (
blueprintLog = logruslog.Global.Nested("blueprint")
)
+type BlueprintJob struct {
+ Blueprint *models.Blueprint
+}
+
+func (bj BlueprintJob) Run() {
+ blueprint := bj.Blueprint
+ pipeline, err := createPipelineByBlueprint(blueprint)
+ if err != nil {
+ blueprintLog.Error(err, fmt.Sprintf("run cron job failed on blueprint:[%d][%s]", blueprint.ID, blueprint.Name))
+ } else {
+ blueprintLog.Info("Run new cron job successfully,blueprint id:[%d] pipeline id:[%d]", blueprint.ID, pipeline.ID)
+ }
+}
+
// CreateBlueprint accepts a Blueprint instance and insert it to database
func CreateBlueprint(blueprint *models.Blueprint) errors.Error {
err := validateBlueprintAndMakePlan(blueprint)
@@ -220,14 +234,13 @@ func ReloadBlueprints(c *cron.Cron) errors.Error {
blueprintLog.Error(err, failToCreateCronJob)
return err
}
- if _, err := c.AddFunc(blueprint.CronConfig, func() {
- pipeline, err := createPipelineByBlueprint(blueprint)
- if err != nil {
- blueprintLog.Error(err, fmt.Sprintf("run cron job failed on blueprint:[%d][%s]", blueprint.ID, blueprint.Name))
- } else {
- blueprintLog.Info("Run new cron job successfully,pipeline id:[%d] pipeline id:[%d]", blueprint.ID, pipeline.ID)
- }
- }); err != nil {
+
+ blueprintLog.Info("Add blueprint id:[%d] cronConfg[%s] to cron job", blueprint.ID, blueprint.CronConfig)
+ blueprintJob := &BlueprintJob{
+ Blueprint: blueprint,
+ }
+
+ if _, err := c.AddJob(blueprint.CronConfig, blueprintJob); err != nil {
blueprintLog.Error(err, failToCreateCronJob)
return errors.Default.Wrap(err, "created cron job failed")
}