MCPcopy Create free account
hub / github.com/Flagsmith/flagsmith / refresh_all_segment_counts

Function refresh_all_segment_counts

api/segment_membership/tasks.py:172–193  ·  view source on GitHub ↗

Refresh counts for every project with a live segment

()

Source from the content-addressed store, hash-verified

170 timeout=timedelta(minutes=10),
171)
172def refresh_all_segment_counts() -> None:
173 """Refresh counts for every project with a live segment"""
174 if not settings.CLICKHOUSE_ENABLED:
175 return
176
177 projects = (
178 Project.objects.filter(
179 Exists(Segment.live_objects.filter(project=OuterRef("pk")))
180 )
181 .select_related("organisation")
182 .order_by("organisation_id", "id")
183 )
184 total = projects.count()
185 if not total:
186 return
187
188 spacing = timedelta(
189 hours=settings.SEGMENT_MEMBERSHIP_REFRESH_PROJECT_STAGGER_WINDOW_HOURS
190 ) / (total + 1)
191 now = timezone.now()
192 for index, project in enumerate(projects.iterator()):
193 enqueue_membership_refresh(project, delay_until=now + spacing * index)
194
195
196@register_task_handler(

Calls 1

Used in the wild real call sites across dependent graphs

searching dependent graphs…