@@ -56,65 +56,54 @@ func CreateScheduleTask(ctx context.Context, rows []*ActionSchedule) error {
5656 return nil
5757 }
5858
59- // Begin transaction
60- ctx , committer , err := db .TxContext (ctx )
61- if err != nil {
62- return err
63- }
64- defer committer .Close ()
65-
66- // Loop through each schedule row
67- for _ , row := range rows {
68- row .Title = util .EllipsisDisplayString (row .Title , 255 )
69- // Create new schedule row
70- if err = db .Insert (ctx , row ); err != nil {
71- return err
72- }
73-
74- // Loop through each schedule spec and create a new spec row
75- now := time .Now ()
76-
77- for _ , spec := range row .Specs {
78- specRow := & ActionScheduleSpec {
79- RepoID : row .RepoID ,
80- ScheduleID : row .ID ,
81- Spec : spec ,
82- }
83- // Parse the spec and check for errors
84- schedule , err := specRow .Parse ()
85- if err != nil {
86- continue // skip to the next spec if there's an error
59+ return db .WithTx (ctx , func (ctx context.Context ) error {
60+ // Loop through each schedule row
61+ for _ , row := range rows {
62+ row .Title = util .EllipsisDisplayString (row .Title , 255 )
63+ // Create new schedule row
64+ if err := db .Insert (ctx , row ); err != nil {
65+ return err
8766 }
8867
89- specRow .Next = timeutil .TimeStamp (schedule .Next (now ).Unix ())
90-
91- // Insert the new schedule spec row
92- if err = db .Insert (ctx , specRow ); err != nil {
93- return err
68+ // Loop through each schedule spec and create a new spec row
69+ now := time .Now ()
70+
71+ for _ , spec := range row .Specs {
72+ specRow := & ActionScheduleSpec {
73+ RepoID : row .RepoID ,
74+ ScheduleID : row .ID ,
75+ Spec : spec ,
76+ }
77+ // Parse the spec and check for errors
78+ schedule , err := specRow .Parse ()
79+ if err != nil {
80+ continue // skip to the next spec if there's an error
81+ }
82+
83+ specRow .Next = timeutil .TimeStamp (schedule .Next (now ).Unix ())
84+
85+ // Insert the new schedule spec row
86+ if err = db .Insert (ctx , specRow ); err != nil {
87+ return err
88+ }
9489 }
9590 }
96- }
97-
98- // Commit transaction
99- return committer .Commit ()
91+ return nil
92+ })
10093}
10194
10295func DeleteScheduleTaskByRepo (ctx context.Context , id int64 ) error {
103- ctx , committer , err := db .TxContext (ctx )
104- if err != nil {
105- return err
106- }
107- defer committer .Close ()
108-
109- if _ , err := db .GetEngine (ctx ).Delete (& ActionSchedule {RepoID : id }); err != nil {
110- return err
111- }
96+ return db .WithTx (ctx , func (ctx context.Context ) error {
97+ if _ , err := db .GetEngine (ctx ).Delete (& ActionSchedule {RepoID : id }); err != nil {
98+ return err
99+ }
112100
113- if _ , err := db .GetEngine (ctx ).Delete (& ActionScheduleSpec {RepoID : id }); err != nil {
114- return err
115- }
101+ if _ , err := db .GetEngine (ctx ).Delete (& ActionScheduleSpec {RepoID : id }); err != nil {
102+ return err
103+ }
116104
117- return committer .Commit ()
105+ return nil
106+ })
118107}
119108
120109func CleanRepoScheduleTasks (ctx context.Context , repo * repo_model.Repository ) ([]* ActionRunJob , error ) {
0 commit comments