enhancement(backend): Only refresh_nodeinfo_known_nodes for Funkwhale instances (#2442)

This commit is contained in:
Petitminion 2025-06-03 17:40:23 +02:00
parent ad9a829af6
commit 724d85a2d9
3 changed files with 12 additions and 5 deletions

View File

@ -236,8 +236,10 @@ def refresh_nodeinfo_known_nodes():
settings.NODEINFO_REFRESH_DELAY
"""
limit = timezone.now() - datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY)
candidates = models.Domain.objects.external().exclude(
nodeinfo_fetch_date__gte=limit
candidates = (
models.Domain.objects.external()
.exclude(nodeinfo_fetch_date__gte=limit)
.filter(nodeinfo__software__name="Funkwhale")
)
names = candidates.values_list("name", flat=True)
logger.info("Launching periodic nodeinfo refresh on %s domains", len(names))

View File

@ -233,15 +233,19 @@ def test_refresh_nodeinfo_known_nodes(settings, factories, mocker, now):
settings.NODEINFO_REFRESH_DELAY = 666
refreshed = [
factories["federation.Domain"](nodeinfo_fetch_date=None),
factories["federation.Domain"](
nodeinfo_fetch_date=None,
nodeinfo={"software": {"name": "Funkwhale"}},
),
factories["federation.Domain"](
nodeinfo_fetch_date=now
- datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY + 1)
- datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY + 1),
nodeinfo={"software": {"name": "Funkwhale"}},
),
]
factories["federation.Domain"](
nodeinfo_fetch_date=now
- datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY - 1)
- datetime.timedelta(seconds=settings.NODEINFO_REFRESH_DELAY - 1),
)
update_domain_nodeinfo = mocker.patch.object(tasks.update_domain_nodeinfo, "delay")

View File

@ -0,0 +1 @@
Only refresh_nodeinfo_known_nodes for Funkwhale instances (#2442)