共计 7 篇文章

Apache wsgi 20 秒超时

问题 项目中业务层接口使用django开发,挂载到apache中使用 wsgi 进行部署,由haproxy进行负载均衡。测试时发现接口20秒左右就会超时断开,导致一些耗时操作(如上传文件)无法完成。 分析 首先怀疑是haproxy中配置的超时时间有问题。所以修改了超时时间为1分钟进行测试。 timeout client 1m timeout server 1ms 结果没用, ...

非Django项目使用Django ORM方法

概述 平常项目中主要使用Django框架做API接口开发,对数据库的操作都是使用Django的ORM框架。对于非API服务就不适合使用Django进行开发,操作数据库就使用了SQLAlchemy框架进行处理。 这样就造成了同一个子系统中使用了两套ORM框架,对同一张表要使用不同的ORM框架定义两次,增加了学习和维护成本。因此考虑将Django框架的ORM脱离Django进行使用的可行性。 解决方案 例子如下: # -*- coding: utf-8 -*- from django.conf ...

Django ORM 实现天表的查询

概述 对于日志、计量等大数据进行记录统计时,如果将数据放入一张表存储,查询效率将会下降严重。 因此多采用按照时间分表方式进行存储。由于API层是使用Django框架开发,所以需要考虑Django的ORM框架怎样才能实现。 实现方式 因为表结构是相同的,只是表名不同,所以考虑定义Model基类的方式,动态生成表名不同的Model类来进行查询使用。下面是动态获取Model的例子: # -*-coding:utf-8 from django.db ...

禁用Apache wsgi的lazyload

问题 由于历史原因,项目中大量使用了Apache wsgi提供API服务的架构。生产中发现,服务重启后第一次调用该服务接口时才会执行服务的初始化工作,导致第一次访问时延很高。 解决方案 修改Apache配置文件,在WSGIScriptAlias配置中同时指定process-group 和application-group的配置。 例子: <VirtualHost *:8000> WSGIDaemonProcess identity processes=5 ...