From fd888b35e2f49cc2076d2f1ab4d6914c4ab850a0 Mon Sep 17 00:00:00 2001 From: Yeganathan S <63534555+skwowet@users.noreply.github.com> Date: Sat, 4 Jul 2026 22:52:41 +0530 Subject: [PATCH] fix: stabilize membersGlobalActivityCount materialized view refresh Signed-off-by: Yeganathan S <63534555+skwowet@users.noreply.github.com> --- .../migrations/R__memberEnrichmentMaterializedViews.sql | 3 +-- .../members_enrichment_worker/src/activities/enrichment.ts | 2 +- .../workflows/refreshMemberEnrichmentMaterializedViews.ts | 7 ++++++- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/backend/src/database/migrations/R__memberEnrichmentMaterializedViews.sql b/backend/src/database/migrations/R__memberEnrichmentMaterializedViews.sql index 016e0395d2..c9f6202309 100644 --- a/backend/src/database/migrations/R__memberEnrichmentMaterializedViews.sql +++ b/backend/src/database/migrations/R__memberEnrichmentMaterializedViews.sql @@ -10,8 +10,7 @@ where msa."segmentId" IN ( where "grandparentId" is not null and "parentId" is not null ) -group by msa."memberId" -order by sum(msa."activityCount") desc; +group by msa."memberId"; create unique index ix_member_global_activity_count_member_id on "membersGlobalActivityCount" ("memberId"); create index ix_member_global_activity_count on "membersGlobalActivityCount" (total_count); diff --git a/services/apps/members_enrichment_worker/src/activities/enrichment.ts b/services/apps/members_enrichment_worker/src/activities/enrichment.ts index b302462872..c51021cb12 100644 --- a/services/apps/members_enrichment_worker/src/activities/enrichment.ts +++ b/services/apps/members_enrichment_worker/src/activities/enrichment.ts @@ -765,7 +765,7 @@ export async function getObsoleteSourcesOfMember( } export async function refreshMemberEnrichmentMaterializedView(mvName: string): Promise { - await refreshMaterializedView(svc.postgres.writer.connection(), mvName) + await refreshMaterializedView(svc.postgres.writer.connection(), mvName, true) } interface IWorkExperienceChanges { diff --git a/services/apps/members_enrichment_worker/src/workflows/refreshMemberEnrichmentMaterializedViews.ts b/services/apps/members_enrichment_worker/src/workflows/refreshMemberEnrichmentMaterializedViews.ts index a4c84cc38d..bb99b7bceb 100644 --- a/services/apps/members_enrichment_worker/src/workflows/refreshMemberEnrichmentMaterializedViews.ts +++ b/services/apps/members_enrichment_worker/src/workflows/refreshMemberEnrichmentMaterializedViews.ts @@ -5,7 +5,12 @@ import { MemberEnrichmentMaterializedView } from '@crowd/types' import * as activities from '../activities' const { refreshMemberEnrichmentMaterializedView } = proxyActivities({ - startToCloseTimeout: '10 minutes', + startToCloseTimeout: '45 minutes', + retry: { + initialInterval: '15 seconds', + backoffCoefficient: 2, + maximumAttempts: 3, + }, }) export async function refreshMemberEnrichmentMaterializedViews(): Promise {