fix(creator): 竞品同步 blocked 状态也排下次重试,避免定时获取永久失效
This commit is contained in:
@@ -289,6 +289,21 @@ func TestCreatorPostgresContentAndWorkflow(t *testing.T) {
|
||||
if err := store.MarkCompetitorSync(ctx, competitor.ID, leaseToken, "idle", "", "", nil); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
// blocked 同步也必须排下一次重试:否则 next_sync_at 置空后定时获取对该账号永久失效。
|
||||
blockedToken, blockedClaimed, err := store.ClaimCompetitorSync(ctx, competitor.ID, true, dueNow)
|
||||
if err != nil || !blockedClaimed {
|
||||
t.Fatalf("claim competitor sync for blocked: err=%v claimed=%v", err, blockedClaimed)
|
||||
}
|
||||
blockedNext := dueNow.Add(2 * time.Hour)
|
||||
if err := store.MarkCompetitorSync(ctx, competitor.ID, blockedToken, "blocked", "", "runtime unavailable", &blockedNext); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if due, err := store.ListDueCompetitors(ctx, blockedNext); err != nil || len(due) != 1 || due[0].ID != competitor.ID {
|
||||
t.Fatalf("blocked competitor must reschedule: due=%+v err=%v", due, err)
|
||||
}
|
||||
if due, err := store.ListDueCompetitors(ctx, dueNow); err != nil || len(due) != 0 {
|
||||
t.Fatalf("blocked competitor must not fire before retry time: due=%+v err=%v", due, err)
|
||||
}
|
||||
work, inserted, err = store.UpsertWork(ctx, WorkInput{Platform: PlatformDouyin, WorkKey: workKey, SourceType: SourceCompetitor, SourceID: competitor.ID, Title: "", Body: "", PublishedAt: nil, Likes: nil, CommentsCount: nil, Shares: nil}, now)
|
||||
if err != nil || inserted || len(work.Sources) != 2 {
|
||||
t.Fatalf("work source association was not retained: work=%+v inserted=%v err=%v", work, inserted, err)
|
||||
|
||||
Reference in New Issue
Block a user