我使用boto.sqs模块作为Amazon SQS(简单队列服务)之上的抽象。 一段时间后,我注意到boto.sqs.get_queue()导致内存不断泄漏。
出于测试目的,我创建了简单的django管理命令:
from django.core.management.base import BaseCommand
class Command(BaseCommand):
help = "My shiny new management command."
def handle(self, *args, **options):
import boto.sqs, time, gc
while True:
conn = boto.sqs.connect_to_region('eu-west-1', aws_access_key_id='my', aws_secret_access_key='my')
queue = conn.get_queue('my')
print('queue is {}'.format(queue))
time.sleep(1)
gc.collect() # just in case
当我执行此命令时,进程消耗的内存不断增加。 有趣的是,当从简单的test.py文件执行相同的循环为'python test.py'时,它不会记忆。
我的Django设置中有一行DEBUG = False。
有谁能建议如何摆脱这个memleak?
答案 0 :(得分:0)
只需从INSTALLED_APPS ...
中删除debug_toolbar即可