MCPcopy Create free account
hub / github.com/cloudreve/cloudreve / saveTaskToInventory

Function saveTaskToInventory

pkg/queue/task.go:489–533  ·  view source on GitHub ↗
(ctx context.Context, task Task, newStatus task.Status, q *queue)

Source from the content-addressed store, hash-verified

487}
488
489func saveTaskToInventory(ctx context.Context, task Task, newStatus task.Status, q *queue) error {
490 var (
491 errStr string
492 errHistory []string
493 )
494 if err := task.Error(); err != nil {
495 errStr = err.Error()
496 }
497
498 errHistory = lo.Map(task.ErrorHistory(), func(err error, index int) string {
499 return err.Error()
500 })
501
502 args := &inventory.TaskArgs{
503 Status: newStatus,
504 Type: task.Type(),
505 PublicState: &types.TaskPublicState{
506 RetryCount: task.Retried(),
507 ExecutedDuration: task.Executed(),
508 ErrorHistory: errHistory,
509 Error: errStr,
510 ResumeTime: task.ResumeTime(),
511 },
512 PrivateState: task.State(),
513 OwnerID: task.Owner().ID,
514 CorrelationID: logging.CorrelationID(ctx),
515 }
516
517 var (
518 res *ent.Task
519 err error
520 )
521
522 if !task.Persisted() {
523 res, err = q.taskClient.New(ctx, args)
524 } else {
525 res, err = q.taskClient.Update(ctx, task.Model(), args)
526 }
527 if err != nil {
528 return fmt.Errorf("failed to persist Task into DB: %w", err)
529 }
530
531 task.OnPersisted(res)
532 return nil
533}

Callers 1

persistTaskFunction · 0.85

Calls 14

TypeFunction · 0.92
CorrelationIDFunction · 0.92
ErrorMethod · 0.65
ErrorHistoryMethod · 0.65
RetriedMethod · 0.65
ExecutedMethod · 0.65
ResumeTimeMethod · 0.65
StateMethod · 0.65
OwnerMethod · 0.65
PersistedMethod · 0.65
NewMethod · 0.65
UpdateMethod · 0.65

Tested by

no test coverage detected