【问题标题】:Django website loads slow after using requests to check broken links使用请求检查损坏的链接后,Django 网站加载缓慢
【发布时间】:2018-06-13 04:08:21
【问题描述】:

我的网站提供了有关不同服务器的详细信息。 我使用 requests 来检查哪个服务器 ILO IP 没有通过 http 工作,哪个没有。

使用请求后.. 页面加载速度超级慢!

我的服务器检查许多服务器的 ILO Ips,如果服务器损坏,它会将 IP 显示为文本,如果没有,它会显示到 ILO 的链接(IP)。

你知道如何让服务器加载更快吗? 谢谢..

models.py - 从 django.db 导入模型

导入请求

class serverlist(models.Model):
    ServerName = models.CharField(max_length = 30,blank=True)
    Owner = models.CharField(max_length = 50,blank=True)
    Project = models.CharField(max_length = 30,blank=True)
    Description = models.CharField(max_length = 255,blank=True)
    IP = models.CharField(max_length = 30,blank=True)
    ILO = models.CharField(max_length = 30,blank=True)
    Rack = models.CharField(max_length = 30,blank=True)
    Status = models.CharField(max_length = 30,blank=True)

    def checkUrlAvailable(self):
        ip_check = 'https://' + self.ILO
        resp = requests.head(ip_check,allow_redirects=False)
        if resp.status_code == 303:
            return True
        else:
            return False

index.html -

{% if server.checkUrlAvailable is True %}

      <a href="//{{ server.ILO }}"> {{ server.ILO }} </a>
            {% else %}
                {{ server.ILO }}


            {% endif %}

【问题讨论】:

    标签: python html mysql django web


    【解决方案1】:

    您的列表中有多少台服务器?我不会像这样在 python 中进行可用的检查。但是使用 javascript,因此您可以启动多个异步检查,并且一个状态代码会更改链接上的类或其他内容,甚至“禁用”锚元素。为此使用 JQuery ajax(类型 HEAD)。

    否则,我会在您的 checkUrlAvailable 函数上放置一些缓存。但这并不能改变执行请求需要一些时间的事实,即使是HEAD。因此,在大列表(以及因此许多请求)上,它开始累加起来。

    【讨论】:

    • 现在大约有 100 台服务器。几年后将达到 200 台服务器。因此,缓存的东西听起来像是一个很好的解决方案,不是吗?
    • 缓存将在例如 ram 中,甚至在 redis 中。因此,您保存给定时间戳的“状态代码”。如果那是 XX 分钟或几小时前,你再做一次请求。但这可能会使您的信息过时。取决于有多少人看这个页面和服务器的数量:)
    • 200 台服务器和大约 10-15 人每天查看一次网页
    • 有什么建议吗?
    • 现在它会为每台服务器的每次浏览量获取最新信息。就我个人而言,我会使用中间件(如 redis)来存储服务器状态 + 时间戳,并使用 cronjob 或其他东西来更新它。然后将redis中存储的信息用于模板。
    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 2013-02-12
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多