From 1199118fb4eea3d6680f08a2dfc8134eb029dd1d Mon Sep 17 00:00:00 2001 From: Rogee Date: Wed, 7 May 2025 20:48:43 +0800 Subject: [PATCH] feat: update jobs --- backend/app/jobs/publish_draft_posts.go | 3 ++- backend/app/jobs/video_cut.go | 7 ++++--- backend/app/jobs/video_extract_head_image.go | 13 +++++++------ backend/app/jobs/video_store_short.go | 7 ++++--- backend/app/models/users.go | 12 ++++++++++-- 5 files changed, 27 insertions(+), 15 deletions(-) diff --git a/backend/app/jobs/publish_draft_posts.go b/backend/app/jobs/publish_draft_posts.go index ca36a17..f7771d3 100644 --- a/backend/app/jobs/publish_draft_posts.go +++ b/backend/app/jobs/publish_draft_posts.go @@ -12,6 +12,7 @@ import ( "quyun/providers/app" "quyun/providers/job" + "github.com/pkg/errors" . "github.com/riverqueue/river" "github.com/samber/lo" log "github.com/sirupsen/logrus" @@ -99,7 +100,7 @@ func (w *PublishDraftPostsWorker) Work(ctx context.Context, job *Job[PublishDraf } if err := models.Posts.Create(ctx, post); err != nil { log.Errorf("Error creating post: %v", err) - return JobCancel(err) + return errors.Wrap(err, "create post") } log.Infof("Post created successfully with ID: %d", post.ID) diff --git a/backend/app/jobs/video_cut.go b/backend/app/jobs/video_cut.go index bca980b..9e3161c 100644 --- a/backend/app/jobs/video_cut.go +++ b/backend/app/jobs/video_cut.go @@ -11,6 +11,7 @@ import ( "quyun/providers/app" "quyun/providers/job" + "github.com/pkg/errors" . "github.com/riverqueue/river" log "github.com/sirupsen/logrus" _ "go.ipao.vip/atom" @@ -66,13 +67,13 @@ func (w *VideoCutWorker) Work(ctx context.Context, job *Job[VideoCut]) error { if err := utils.CutMedia(input, output, 0, 60); err != nil { log.Errorf("Error cutting media: %v", err) - return JobCancel(err) + return errors.Wrap(err, "cut media") } duration, err := utils.GetMediaDuration(input) if err != nil { log.Errorf("Error getting media duration: %v", err) - return JobCancel(err) + return errors.Wrap(err, "get media duration") } // update media metas metas := fields.MediaMetas{ @@ -82,7 +83,7 @@ func (w *VideoCutWorker) Work(ctx context.Context, job *Job[VideoCut]) error { } if err := models.Medias.UpdateMetas(ctx, media.ID, metas); err != nil { log.Errorf("Error updating media metas: %v", err) - return JobCancel(err) + return errors.Wrap(err, "update media metas") } // save to database diff --git a/backend/app/jobs/video_extract_head_image.go b/backend/app/jobs/video_extract_head_image.go index c6d63e5..a23b342 100644 --- a/backend/app/jobs/video_extract_head_image.go +++ b/backend/app/jobs/video_extract_head_image.go @@ -14,6 +14,7 @@ import ( "quyun/providers/app" "quyun/providers/job" + "github.com/pkg/errors" . "github.com/riverqueue/river" log "github.com/sirupsen/logrus" _ "go.ipao.vip/atom" @@ -68,20 +69,20 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx if err := utils.GetFrameImageFromVideo(input, output, 1); err != nil { log.Errorf("Error extracting image from video: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to extract image from video") } defer os.RemoveAll(output) fileSize, err := utils.GetFileSize(output) if err != nil { log.Errorf("Error getting file size: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to get file size") } fileMd5, err := utils.GetFileMd5(output) if err != nil { log.Errorf("Error getting file MD5: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to get file MD5") } filename := fileMd5 + filepath.Ext(output) @@ -103,7 +104,7 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx // upload to oss if err := w.oss.Upload(ctx, output, imageMedia.Path, ali.WithInternal()); err != nil { log.Errorf("Error uploading image to OSS: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to upload image to OSS") } if w.job.Add(&RemoveFile{FilePath: output}); err != nil { @@ -112,7 +113,7 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx if err := models.Medias.Create(ctx, imageMedia); err != nil { log.Errorf("Error creating media record: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to create media record") } dst := filepath.Join(w.app.StoragePath, media.Path) @@ -122,7 +123,7 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx if w.job.Add(&PublishDraftPosts{MediaHash: media.Hash}); err != nil { log.Errorf("Error adding job: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to add job") } return nil diff --git a/backend/app/jobs/video_store_short.go b/backend/app/jobs/video_store_short.go index 12b2fea..b26747d 100644 --- a/backend/app/jobs/video_store_short.go +++ b/backend/app/jobs/video_store_short.go @@ -13,6 +13,7 @@ import ( "quyun/providers/app" "quyun/providers/job" + "github.com/pkg/errors" . "github.com/riverqueue/river" log "github.com/sirupsen/logrus" _ "go.ipao.vip/atom" @@ -66,7 +67,7 @@ func (w *VideoStoreShortWorker) Work(ctx context.Context, job *Job[VideoStoreSho duration, err := utils.GetMediaDuration(job.Args.FilePath) if err != nil { log.Errorf("Error getting media duration: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to get media duration") } // get file md5 @@ -74,7 +75,7 @@ func (w *VideoStoreShortWorker) Work(ctx context.Context, job *Job[VideoStoreSho fileMd5, err := utils.GetFileMd5(job.Args.FilePath) if err != nil { log.Errorf("Error getting file md5: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to get file md5") } log.Infof("got file md5 %s %s", job.Args.FilePath, fileMd5) @@ -85,7 +86,7 @@ func (w *VideoStoreShortWorker) Work(ctx context.Context, job *Job[VideoStoreSho fileSize, err := utils.GetFileSize(job.Args.FilePath) if err != nil { log.Errorf("Error getting file size: %v", err) - return JobCancel(err) + return errors.Wrap(err, "failed to get file size") } log.Infof("got file size %s %d", job.Args.FilePath, fileSize) diff --git a/backend/app/models/users.go b/backend/app/models/users.go index 31d4519..5ec42f8 100644 --- a/backend/app/models/users.go +++ b/backend/app/models/users.go @@ -164,11 +164,19 @@ func (m *usersModel) Update(ctx context.Context, id int64, userModel *model.User userModel.UpdatedAt = time.Now() tbl := table.Users - stmt := tbl.UPDATE(tbl.MutableColumns.Except(tbl.CreatedAt, tbl.DeletedAt)).MODEL(userModel).WHERE(tbl.ID.EQ(Int64(id))).RETURNING(tbl.AllColumns) + stmt := tbl. + UPDATE( + tbl.MutableColumns.Except( + tbl.CreatedAt, + tbl.DeletedAt, + ), + ). + MODEL(userModel). + WHERE(tbl.ID.EQ(Int64(id))). + RETURNING(tbl.AllColumns) m.log.Infof("sql: %s", stmt.DebugSql()) var updatedUser model.Users - if err := stmt.QueryContext(ctx, db, &updatedUser); err != nil { m.log.Errorf("error updating user: %v", err) return nil, err