Support online railway deployment

This commit is contained in:
Pin Fang
2023-03-25 10:02:19 +08:00
parent 04fec4a585
commit 2d0935741c
6 changed files with 34 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
import time
from datetime import datetime, timedelta
class ExpiredDict(dict):
@@ -8,8 +8,7 @@ class ExpiredDict(dict):
def __getitem__(self, key):
value, expiry_time = super().__getitem__(key)
# 如果元素已过期,则从字典中删除该元素并抛出 KeyError 异常
if time.monotonic() > expiry_time:
if datetime.now() > expiry_time:
del self[key]
raise KeyError("expired {}".format(key))
self.__setitem__(key, value)
@@ -24,20 +23,20 @@ class ExpiredDict(dict):
return self[key]
except KeyError:
return default
def __contains__(self, key):
try:
self[key]
return True
except KeyError:
return False
def keys(self):
keys=list(super().keys())
keys = list(super().keys())
return [key for key in keys if key in self]
def items(self):
return [(key, self[key]) for key in self.keys()]
def __iter__(self):
return self.keys().__iter__()
return self.keys().__iter__()