10
10
from pydantic import NonNegativeFloat , NonNegativeInt
11
11
from servicelib .async_utils import cancel_wait_task
12
12
from servicelib .background_task_utils import exclusive_periodic
13
- from servicelib .redis ._client import RedisClientSDK
14
13
from servicelib .utils import limited_gather
15
14
from settings_library .redis import RedisDatabase
16
15
@@ -62,10 +61,6 @@ def _can_be_removed(model: TrackedServiceModel) -> bool:
62
61
return False
63
62
64
63
65
- def _get_redis_client_from_monitor (monitor : "Monitor" ) -> RedisClientSDK :
66
- return get_redis_client (monitor .app , RedisDatabase .LOCKS )
67
-
68
-
69
64
class Monitor :
70
65
def __init__ (self , app : FastAPI , status_worker_interval : timedelta ) -> None :
71
66
self .app = app
@@ -75,11 +70,6 @@ def __init__(self, app: FastAPI, status_worker_interval: timedelta) -> None:
75
70
def status_worker_interval_seconds (self ) -> NonNegativeFloat :
76
71
return self .status_worker_interval .total_seconds ()
77
72
78
- @exclusive_periodic (
79
- _get_redis_client_from_monitor ,
80
- task_interval = _INTERVAL_BETWEEN_CHECKS ,
81
- retry_after = _INTERVAL_BETWEEN_CHECKS ,
82
- )
83
73
async def _worker_check_services_require_status_update (self ) -> None :
84
74
"""
85
75
Check if any service requires it's status to be polled.
@@ -144,8 +134,16 @@ async def _worker_check_services_require_status_update(self) -> None:
144
134
)
145
135
146
136
async def setup (self ) -> None :
137
+ @exclusive_periodic (
138
+ get_redis_client (self .app , RedisDatabase .LOCKS ),
139
+ task_interval = _INTERVAL_BETWEEN_CHECKS ,
140
+ retry_after = _INTERVAL_BETWEEN_CHECKS ,
141
+ )
142
+ async def _periodic_check_services_require_status_update () -> None :
143
+ await self ._worker_check_services_require_status_update ()
144
+
147
145
self .app .state .status_monitor_background_task = asyncio .create_task (
148
- self . _worker_check_services_require_status_update (),
146
+ _periodic_check_services_require_status_update (),
149
147
name = "periodic_service_status_update" ,
150
148
)
151
149
0 commit comments