Python 3.x Python/Django使用一种缓存在一段时间内注册错误
在Python/Django应用程序中,如果出现错误,我会发送一封电子邮件。代码逻辑如下所示:Python 3.x Python/Django使用一种缓存在一段时间内注册错误,python-3.x,Python 3.x,在Python/Django应用程序中,如果出现错误,我会发送一封电子邮件。代码逻辑如下所示: if canvas(path, size): json[key] = path else: # send an error email send_error_email(error_msg='Canvas Error') raise CanvasError send\u error\u email是一种发送电子邮件的功能
if canvas(path, size):
json[key] = path
else:
# send an error email
send_error_email(error_msg='Canvas Error')
raise CanvasError
send\u error\u email
是一种发送电子邮件的功能
canvas(路径、大小)
是返回True
或False
I发送电子邮件的其他错误/异常
我的问题是,如果在某些情况下,我每小时会收到多次相同的错误
我想要的是解决缓存
错误的方法,如果是相同的错误,则不发送电子邮件
还要在预定义的时间段后清理此缓存
我的方法是将数组用作缓存,并附加到其中:
error_cache.append(error)
但是我如何在一段时间后清理缓存,同时避免清理在过去20分钟内创建的错误(需要变量,20只是一个示例)。如果错误是字符串或任何可哈希和可比较的类型,可以采用的一种方法是使用集
import time
errorCache = set()
startTime = time.time()
并在循环的开始处或您认为最合适的地方添加以下内容:
if time.time() - startTime > 1200 # It's been more than 20 min since the last error
errorCache.clear()
startTime = time.time()
每当您准备发送邮件时(例如,当出现画布错误时),您都会执行以下操作:
error = 'Canvas Error'
if error not in errorCache:
send_error_email(error_msg=error)
errorCache.add(error)
raise CanvasError
如果是相同的错误-->如何判断是否是相同的错误?是什么使两个错误相同?error\u msg,send\u error\u email的参数