Skip to content

Commit ba47f8b

Browse files
committed
use different approach to paginate
1 parent 78396d5 commit ba47f8b

4 files changed

Lines changed: 26 additions & 8 deletions

File tree

services/apps/merge_suggestions_worker/src/activities/memberMergeSuggestions.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ export async function updateMemberMergeSuggestionsLastGeneratedAt(tenantId: stri
267267
export async function getMembers(
268268
tenantId: string,
269269
batchSize: number,
270-
afterMemberId?: string,
270+
// afterMemberId?: string,
271271
lastGeneratedAt?: string,
272272
exactMemberId?: string,
273273
): Promise<IMemberBaseForMergeSuggestions[]> {
@@ -278,7 +278,7 @@ export async function getMembers(
278278
and: [
279279
{ [MemberField.TENANT_ID]: { eq: tenantId } },
280280
exactMemberId ? { [MemberField.ID]: { eq: exactMemberId } } : null,
281-
afterMemberId ? { [MemberField.ID]: { gt: afterMemberId } } : null,
281+
// afterMemberId ? { [MemberField.ID]: { gt: afterMemberId } } : null,
282282
lastGeneratedAt ? { [MemberField.CREATED_AT]: { gt: lastGeneratedAt } } : null,
283283
],
284284
},
@@ -287,6 +287,7 @@ export async function getMembers(
287287
MemberField.TENANT_ID,
288288
MemberField.DISPLAY_NAME,
289289
MemberField.ATTRIBUTES,
290+
MemberField.CREATED_AT,
290291
],
291292
limit: batchSize,
292293
})

services/apps/merge_suggestions_worker/src/types.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,8 @@ export interface ILLMBody {
7070

7171
export interface IProcessGenerateMemberMergeSuggestionsArgs {
7272
tenantId: string
73-
lastUuid?: string
73+
lastGeneratedAt?: string
74+
testRun?: number
7475
}
7576

7677
export interface IProcessGenerateOrganizationMergeSuggestionsArgs {

services/apps/merge_suggestions_worker/src/workflows/generateMemberMergeSuggestions.ts

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,15 +19,18 @@ export async function generateMemberMergeSuggestions(
1919
const PARALLEL_SUGGESTION_PROCESSING = 10
2020
const SIMILARITY_CONFIDENCE_SCORE_THRESHOLD = 0.75
2121

22-
let lastUuid: string = args.lastUuid || null
22+
let lastGeneratedAt: string = args.lastGeneratedAt || null
2323

2424
// get the latest generation time of tenant's member suggestions, we'll only get members created after that for new suggestions
25-
const lastGeneratedAt = await activity.findTenantsLatestMemberSuggestionGeneratedAt(args.tenantId)
25+
if (!lastGeneratedAt) {
26+
lastGeneratedAt = await activity.findTenantsLatestMemberSuggestionGeneratedAt(args.tenantId)
27+
}
28+
29+
console.log('[generateMemberMergeSuggestions] Last generated at:', lastGeneratedAt)
2630

2731
const result: IMemberBaseForMergeSuggestions[] = await activity.getMembers(
2832
args.tenantId,
2933
PAGE_SIZE,
30-
lastUuid,
3134
lastGeneratedAt,
3235
)
3336

@@ -51,7 +54,9 @@ export async function generateMemberMergeSuggestions(
5154
return
5255
}
5356

54-
lastUuid = result.length > 0 ? result[result.length - 1]?.id : null
57+
const lastProcessedAt = result.length > 0 ? result[result.length - 1]?.createdAt : null
58+
59+
console.log('[generateMemberMergeSuggestions] Last processed member createdAt:', lastProcessedAt)
5560

5661
const allMergeSuggestions: IMemberMergeSuggestion[] = []
5762

@@ -109,5 +114,15 @@ export async function generateMemberMergeSuggestions(
109114
)
110115
}
111116

112-
await continueAsNew<typeof generateMemberMergeSuggestions>({ tenantId: args.tenantId, lastUuid })
117+
// if testRun > 3, we'll stop the workflow
118+
// todo: remove this
119+
if (args.testRun > 3) {
120+
return
121+
}
122+
123+
await continueAsNew<typeof generateMemberMergeSuggestions>({
124+
tenantId: args.tenantId,
125+
lastGeneratedAt: lastProcessedAt,
126+
testRun: args.testRun + 1,
127+
})
113128
}

services/libs/types/src/members.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ export interface IMemberBaseForMergeSuggestions {
166166
id: string
167167
displayName: string
168168
attributes: IAttributes
169+
createdAt: string
169170
}
170171

171172
export interface IMemberWithAggregatesForMergeSuggestions extends IMemberBaseForMergeSuggestions {

0 commit comments

Comments
 (0)