Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Python/Django使用一种缓存在一段时间内注册错误_Python 3.x - Fatal编程技术网

Python 3.x 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是一种发送电子邮件的功能

在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
是一种发送电子邮件的功能
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的参数