【问题标题】:Long running Django process feasible?长时间运行的Django进程可行吗?
【发布时间】:2016-04-01 19:50:14
【问题描述】:

是否有(推荐的)方法将 Django 作为长时间运行的单个进程(处理排队的请求)运行?

我正在尝试解决一个性能问题,即最佳预计性能调整仍然不够快,无法用于生产。调整后的数据库请求和缓存最终都会在反序列化中占用太多时间。

此外,查询集是相当静态的。

因此,解决性能问题的一种选择似乎是在长期运行的进程中对现有已执行/已实现的查询集进行计算。

有人知道以这种方式运行 django 的方法吗?

【问题讨论】:

    标签: django performance orm redis daemon


    【解决方案1】:

    因为 Django 使用 Python,您可以很容易地在应用程序上运行部分脚本,在服务器上运行,作为 cron 作业或持续运行。

    如果脚本在项目目录中,则需要从以下几行开始:

    import os
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<module>.settings")
    

    其中&lt;module&gt;是包含settings.py文件的目录。

    然后就可以正常访问对象和函数了,例如:

    from app.models import *
    
    if __name__ == "__main__":
        obj = MyObj.objects.all()
    

    【讨论】:

    • 这里的问题是接受请求。我仍然想接受请求,但来自同一个进程,这样我就可以跨请求有效地共享内存中的数据。
    猜你喜欢
    • 2012-08-18
    • 2018-10-27
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多