Skip to content

Commit 7c5f0df

Browse files
committed
add random jitter to check run interval #2040
1 parent e00fef2 commit 7c5f0df

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

api/tacticalrmm/agents/models.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import asyncio
22
import logging
3+
import random
34
import re
45
from collections import Counter
56
from contextlib import suppress
@@ -584,7 +585,9 @@ def check_run_interval(self) -> int:
584585
# don't allow check runs less than 15s
585586
interval = 15 if check.run_interval < 15 else check.run_interval
586587

587-
return interval
588+
return interval + random.randint(
589+
*getattr(settings, "CHECK_INTERVAL_JITTER", (1, 60))
590+
)
588591

589592
def run_script(
590593
self,

api/tacticalrmm/apiv3/tests/tests.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
from unittest.mock import patch
2+
13
from django.utils import timezone as djangotime
24
from model_bakery import baker
35

@@ -12,7 +14,8 @@ def setUp(self):
1214
self.setup_coresettings()
1315
self.agent = baker.make_recipe("agents.agent")
1416

15-
def test_get_checks(self):
17+
@patch("agents.models.random.randint", return_value=0)
18+
def test_get_checks(self, mock_randint):
1619
agent = baker.make_recipe("agents.agent")
1720
url = f"/api/v3/{agent.agent_id}/checkrunner/"
1821

@@ -67,7 +70,8 @@ def test_get_checks(self):
6770

6871
self.check_not_authenticated("get", url)
6972

70-
def test_checkrunner_interval(self):
73+
@patch("agents.models.random.randint", return_value=0)
74+
def test_checkrunner_interval(self, mock_randint):
7175
url = f"/api/v3/{self.agent.agent_id}/checkinterval/"
7276
r = self.client.get(url, format="json")
7377
self.assertEqual(r.status_code, 200)

0 commit comments

Comments
 (0)