chore: update app generation workflow
Desktop Client Build / Resolve Build Metadata (push) Successful in 26s
Frontend CI / Frontend (push) Successful in 2m58s
Backend CI / Backend (push) Successful in 16m11s
Desktop Client Build / Build Desktop Client (push) Successful in 24m1s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 28s
Desktop Client Build / Resolve Build Metadata (push) Successful in 26s
Frontend CI / Frontend (push) Successful in 2m58s
Backend CI / Backend (push) Successful in 16m11s
Desktop Client Build / Build Desktop Client (push) Successful in 24m1s
Desktop Client Build / Publish Client Artifacts to NAS (push) Successful in 28s
This commit is contained in:
@@ -179,6 +179,15 @@ func (w *KolGenerationWorker) Process(ctx context.Context, task tenantapp.Claime
|
||||
auditTx := repository.NewAuditRepository(tx)
|
||||
usageRepo := repository.NewKolUsageRepository(tx)
|
||||
|
||||
if err := tenantapp.EnsureGenerationArticleWritable(ctx, tx, task.ArticleID, task.TenantID); err != nil {
|
||||
if tenantapp.IsGenerationArticleUnavailable(err) {
|
||||
w.rollbackAndCancelUnavailableArticle(ctx, tx, task)
|
||||
return
|
||||
}
|
||||
w.rollbackAndFail(ctx, tx, task, "persist_article_status", err)
|
||||
return
|
||||
}
|
||||
|
||||
versionID, err := articleRepo.CreateArticleVersion(ctx, repository.CreateArticleVersionInput{
|
||||
ArticleID: task.ArticleID,
|
||||
Title: title,
|
||||
@@ -270,6 +279,19 @@ func (w *KolGenerationWorker) rollbackAndFail(ctx context.Context, tx pgx.Tx, ta
|
||||
w.HandleTaskFailure(ctx, task, stage, taskErr)
|
||||
}
|
||||
|
||||
func (w *KolGenerationWorker) rollbackAndCancelUnavailableArticle(ctx context.Context, tx pgx.Tx, task tenantapp.ClaimedGenerationTask) {
|
||||
cleanupCtx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
|
||||
defer cancel()
|
||||
_ = tx.Rollback(cleanupCtx)
|
||||
if err := tenantapp.HandleGenerationTaskArticleUnavailable(ctx, w.pool, w.cache, task, kolGenerationTaskType, true); err != nil && w.logger != nil {
|
||||
w.logger.Warn("kol generation article unavailable cleanup failed",
|
||||
zap.Error(err),
|
||||
zap.Int64("task_id", task.ID),
|
||||
zap.Int64("article_id", task.ArticleID),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
var (
|
||||
errMissingRenderedPrompt = errors.New("kol generation task missing rendered prompt")
|
||||
errEmptyGeneratedContent = errors.New("kol generation returned empty content")
|
||||
|
||||
Reference in New Issue
Block a user