在节奏工作流活动中,在迭代多个实体时存储当前光标位置的最佳实践是什么?这将允许工作流在发生故障时从最后一个光标处开始。
存储当前光标的正确方法是什么?我们是否应该定期使用当前光标继续新的?
func createReports(ctx context.Context, arg1 string, arg2 int) error {
cursor := ""
for {
result, err := someService.GetContracts(ctx, nil, cursor, 100)
if err != nil {
return err
}
for _, c := range result.Contracts {
err := aChildWorkflow.StartPipeline(ctx, arg1, arg2)
if err != nil {
return err
}
}
if !result.HasMore {
break
}
cursor = result.NextCursor
}
return nil
}