fix: stabilize media queue processing

This commit is contained in:
2026-01-22 17:44:55 +08:00
parent 38d8706038
commit bc8ed1cbbd
2 changed files with 23 additions and 14 deletions

View File

@@ -13,7 +13,9 @@ import (
"quyun/v2/database"
"quyun/v2/providers/app"
"quyun/v2/providers/job"
"quyun/v2/providers/jwt"
"quyun/v2/providers/postgres"
"quyun/v2/providers/storage"
log "github.com/sirupsen/logrus"
"github.com/spf13/cobra"
@@ -24,6 +26,8 @@ func defaultProviders() container.Providers {
return commands.Default(container.Providers{
postgres.DefaultProvider(),
job.DefaultProvider(),
jwt.DefaultProvider(),
storage.DefaultProvider(),
database.DefaultProvider(),
}...)
}

View File

@@ -53,13 +53,14 @@ func (j *MediaProcessWorker) Work(ctx context.Context, job *river.Job[args.Media
}
// 2. 更新状态为处理中,标识处理已开始。
_, err = models.MediaAssetQuery.WithContext(ctx).
Where(models.MediaAssetQuery.ID.Eq(asset.ID)).
UpdateSimple(
models.MediaAssetQuery.Status.Value(consts.MediaAssetStatusProcessing),
models.MediaAssetQuery.UpdatedAt.Value(time.Now()),
)
if err != nil {
if err := models.MediaAssetQuery.WithContext(ctx).
UnderlyingDB().
Model(&models.MediaAsset{}).
Where("id = ?", asset.ID).
Updates(map[string]any{
"status": consts.MediaAssetStatusProcessing,
"updated_at": time.Now(),
}).Error; err != nil {
return err
}
@@ -114,13 +115,17 @@ func (j *MediaProcessWorker) Work(ctx context.Context, job *river.Job[args.Media
}
// 4. 更新最终状态。
_, err = models.MediaAssetQuery.WithContext(ctx).
Where(models.MediaAssetQuery.ID.Eq(asset.ID)).
Updates(&models.MediaAsset{
Status: finalStatus,
UpdatedAt: time.Now(),
})
if err := models.MediaAssetQuery.WithContext(ctx).
UnderlyingDB().
Model(&models.MediaAsset{}).
Where("id = ?", asset.ID).
Updates(map[string]any{
"status": finalStatus,
"updated_at": time.Now(),
}).Error; err != nil {
return err
}
return nil
}
func (j *MediaProcessWorker) registerCoverAsset(ctx context.Context, asset *models.MediaAsset, coverFile string) error {