feat: update jobs
This commit is contained in:
@@ -12,6 +12,7 @@ import (
|
|||||||
"quyun/providers/app"
|
"quyun/providers/app"
|
||||||
"quyun/providers/job"
|
"quyun/providers/job"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
. "github.com/riverqueue/river"
|
. "github.com/riverqueue/river"
|
||||||
"github.com/samber/lo"
|
"github.com/samber/lo"
|
||||||
log "github.com/sirupsen/logrus"
|
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 {
|
if err := models.Posts.Create(ctx, post); err != nil {
|
||||||
log.Errorf("Error creating post: %v", err)
|
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)
|
log.Infof("Post created successfully with ID: %d", post.ID)
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import (
|
|||||||
"quyun/providers/app"
|
"quyun/providers/app"
|
||||||
"quyun/providers/job"
|
"quyun/providers/job"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
. "github.com/riverqueue/river"
|
. "github.com/riverqueue/river"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
_ "go.ipao.vip/atom"
|
_ "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 {
|
if err := utils.CutMedia(input, output, 0, 60); err != nil {
|
||||||
log.Errorf("Error cutting media: %v", err)
|
log.Errorf("Error cutting media: %v", err)
|
||||||
return JobCancel(err)
|
return errors.Wrap(err, "cut media")
|
||||||
}
|
}
|
||||||
|
|
||||||
duration, err := utils.GetMediaDuration(input)
|
duration, err := utils.GetMediaDuration(input)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error getting media duration: %v", err)
|
log.Errorf("Error getting media duration: %v", err)
|
||||||
return JobCancel(err)
|
return errors.Wrap(err, "get media duration")
|
||||||
}
|
}
|
||||||
// update media metas
|
// update media metas
|
||||||
metas := fields.MediaMetas{
|
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 {
|
if err := models.Medias.UpdateMetas(ctx, media.ID, metas); err != nil {
|
||||||
log.Errorf("Error updating media metas: %v", err)
|
log.Errorf("Error updating media metas: %v", err)
|
||||||
return JobCancel(err)
|
return errors.Wrap(err, "update media metas")
|
||||||
}
|
}
|
||||||
|
|
||||||
// save to database
|
// save to database
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import (
|
|||||||
"quyun/providers/app"
|
"quyun/providers/app"
|
||||||
"quyun/providers/job"
|
"quyun/providers/job"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
. "github.com/riverqueue/river"
|
. "github.com/riverqueue/river"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
_ "go.ipao.vip/atom"
|
_ "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 {
|
if err := utils.GetFrameImageFromVideo(input, output, 1); err != nil {
|
||||||
log.Errorf("Error extracting image from video: %v", err)
|
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)
|
defer os.RemoveAll(output)
|
||||||
|
|
||||||
fileSize, err := utils.GetFileSize(output)
|
fileSize, err := utils.GetFileSize(output)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error getting file size: %v", err)
|
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)
|
fileMd5, err := utils.GetFileMd5(output)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error getting file MD5: %v", err)
|
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)
|
filename := fileMd5 + filepath.Ext(output)
|
||||||
|
|
||||||
@@ -103,7 +104,7 @@ func (w *VideoExtractHeadImageWorker) Work(ctx context.Context, job *Job[VideoEx
|
|||||||
// upload to oss
|
// upload to oss
|
||||||
if err := w.oss.Upload(ctx, output, imageMedia.Path, ali.WithInternal()); err != nil {
|
if err := w.oss.Upload(ctx, output, imageMedia.Path, ali.WithInternal()); err != nil {
|
||||||
log.Errorf("Error uploading image to OSS: %v", err)
|
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 {
|
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 {
|
if err := models.Medias.Create(ctx, imageMedia); err != nil {
|
||||||
log.Errorf("Error creating media record: %v", err)
|
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)
|
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 {
|
if w.job.Add(&PublishDraftPosts{MediaHash: media.Hash}); err != nil {
|
||||||
log.Errorf("Error adding job: %v", err)
|
log.Errorf("Error adding job: %v", err)
|
||||||
return JobCancel(err)
|
return errors.Wrap(err, "failed to add job")
|
||||||
}
|
}
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import (
|
|||||||
"quyun/providers/app"
|
"quyun/providers/app"
|
||||||
"quyun/providers/job"
|
"quyun/providers/job"
|
||||||
|
|
||||||
|
"github.com/pkg/errors"
|
||||||
. "github.com/riverqueue/river"
|
. "github.com/riverqueue/river"
|
||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
_ "go.ipao.vip/atom"
|
_ "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)
|
duration, err := utils.GetMediaDuration(job.Args.FilePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error getting media duration: %v", err)
|
log.Errorf("Error getting media duration: %v", err)
|
||||||
return JobCancel(err)
|
return errors.Wrap(err, "failed to get media duration")
|
||||||
}
|
}
|
||||||
|
|
||||||
// get file md5
|
// get file md5
|
||||||
@@ -74,7 +75,7 @@ func (w *VideoStoreShortWorker) Work(ctx context.Context, job *Job[VideoStoreSho
|
|||||||
fileMd5, err := utils.GetFileMd5(job.Args.FilePath)
|
fileMd5, err := utils.GetFileMd5(job.Args.FilePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error getting file md5: %v", err)
|
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)
|
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)
|
fileSize, err := utils.GetFileSize(job.Args.FilePath)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Errorf("Error getting file size: %v", err)
|
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)
|
log.Infof("got file size %s %d", job.Args.FilePath, fileSize)
|
||||||
|
|
||||||
|
|||||||
@@ -164,11 +164,19 @@ func (m *usersModel) Update(ctx context.Context, id int64, userModel *model.User
|
|||||||
userModel.UpdatedAt = time.Now()
|
userModel.UpdatedAt = time.Now()
|
||||||
|
|
||||||
tbl := table.Users
|
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())
|
m.log.Infof("sql: %s", stmt.DebugSql())
|
||||||
|
|
||||||
var updatedUser model.Users
|
var updatedUser model.Users
|
||||||
|
|
||||||
if err := stmt.QueryContext(ctx, db, &updatedUser); err != nil {
|
if err := stmt.QueryContext(ctx, db, &updatedUser); err != nil {
|
||||||
m.log.Errorf("error updating user: %v", err)
|
m.log.Errorf("error updating user: %v", err)
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|||||||
Reference in New Issue
Block a user