@@ -260,6 +260,8 @@ def _save_to_cache(self, data_record: DataRecord):
260
260
self ._cache [data_record .idempotency_key ] = data_record
261
261
262
262
def _retrieve_from_cache (self , idempotency_key : str ):
263
+ if not self .use_local_cache :
264
+ return
263
265
cached_record = self ._cache .get (idempotency_key )
264
266
if cached_record :
265
267
if not cached_record .is_expired :
@@ -268,6 +270,8 @@ def _retrieve_from_cache(self, idempotency_key: str):
268
270
self ._delete_from_cache (idempotency_key )
269
271
270
272
def _delete_from_cache (self , idempotency_key : str ):
273
+ if not self .use_local_cache :
274
+ return
271
275
del self ._cache [idempotency_key ]
272
276
273
277
def save_success (self , event : Dict [str , Any ], result : dict ) -> None :
@@ -296,8 +300,7 @@ def save_success(self, event: Dict[str, Any], result: dict) -> None:
296
300
)
297
301
self ._update_record (data_record = data_record )
298
302
299
- if self .use_local_cache :
300
- self ._save_to_cache (data_record )
303
+ self ._save_to_cache (data_record )
301
304
302
305
def save_inprogress (self , event : Dict [str , Any ]) -> None :
303
306
"""
@@ -317,10 +320,8 @@ def save_inprogress(self, event: Dict[str, Any]) -> None:
317
320
318
321
logger .debug (f"Saving in progress record for idempotency key: { data_record .idempotency_key } " )
319
322
320
- if self .use_local_cache :
321
- cached_record = self ._retrieve_from_cache (idempotency_key = data_record .idempotency_key )
322
- if cached_record :
323
- raise IdempotencyItemAlreadyExistsError
323
+ if self ._retrieve_from_cache (idempotency_key = data_record .idempotency_key ):
324
+ raise IdempotencyItemAlreadyExistsError
324
325
325
326
self ._put_record (data_record )
326
327
@@ -343,8 +344,7 @@ def delete_record(self, event: Dict[str, Any], exception: Exception):
343
344
)
344
345
self ._delete_record (data_record )
345
346
346
- if self .use_local_cache :
347
- self ._delete_from_cache (data_record .idempotency_key )
347
+ self ._delete_from_cache (data_record .idempotency_key )
348
348
349
349
def get_record (self , event : Dict [str , Any ]) -> DataRecord :
350
350
"""
@@ -370,19 +370,15 @@ def get_record(self, event: Dict[str, Any]) -> DataRecord:
370
370
371
371
idempotency_key = self ._get_hashed_idempotency_key (event )
372
372
373
- if self .use_local_cache :
374
- cached_record = self ._retrieve_from_cache (idempotency_key = idempotency_key )
375
- if cached_record :
376
- logger .debug (f"Idempotency record found in cache with idempotency key: { idempotency_key } " )
377
- self ._validate_payload (event , cached_record )
378
- return cached_record
373
+ cached_record = self ._retrieve_from_cache (idempotency_key = idempotency_key )
374
+ if cached_record :
375
+ logger .debug (f"Idempotency record found in cache with idempotency key: { idempotency_key } " )
376
+ self ._validate_payload (event , cached_record )
377
+ return cached_record
379
378
380
379
record = self ._get_record (idempotency_key )
381
380
382
- # We can't cache "INPROGRESS" records as we have no way to reflect updates that can happen outside of the
383
- # execution environment
384
- if self .use_local_cache and not record .status == STATUS_CONSTANTS ["INPROGRESS" ]:
385
- self ._save_to_cache (data_record = record )
381
+ self ._save_to_cache (data_record = record )
386
382
387
383
self ._validate_payload (event , record )
388
384
return record
0 commit comments