Python

解决apscheduler报错:Run time of job …… next run at: ……)” was missed by

apscheduler 运行过程中出现类似如下报错: Run time of job "9668_hack (trigger: interval[1:00:00], next run at: 2018-10-29 22:00:00 CST)" was missed by 0:01:47.387821 Run time of job "9668_index (trigger: interval[0:30:00], next run at: 2018-10-29 21:30:00 CST)" was missed by 0:01:47.392574 Run time of job "9669_deep (trigger: interval[1:00:00], next run at: 2018-10-29 22:00:00 CST…继续阅读 »
Python

解读Redis报错:“MISCONF Redis is configured to save RDB snapshots”

这个错发生在celery中用redis 作为backend 传输返回结果时发生的错误,以前也遇过这个错,但是没有放在心上,今天偶然发现所有节点都出现了该报错,并且影响了队列的正常消费,所以时候对这个错误一探究竟了。 先贴上原始报错代码: \"result\": {\"exc_type\": \"ResponseError\", \"exc_message\": \"Command # 1 (…继续阅读 »
Python

Nginx + gunicorn + Flask 快速部署实现上线水平

之前一直在用nginx + uwsgi + django 架构,之前也在博客里分享过相关故障解决: nginx+uwsgi完美配置文件,解决“upstream prematurely closed connection”报错 nginx + uwsgi + django出现的问题 那么在用了一段时间后发现一个很严重的问题:无论代码层如何优化,都会出现内存泄漏(内存占用无限增长)的问题, …继续阅读 »
Python

Nginx反向代理 + Flask + gunicorn 架构解决获取用户真实ip问题

其实这个问题在Nginx + uwsgi + django 上是不存在的,因为nginx 与uwsgi链接是可以通过sock文件的,而nginx + flask 只能通过普通的反向代理。 所以就会出现一个nginx 反向代理常见的问题,实际对flask 发起的请求是由ningx完成,所以获取到的ip是服务器本机的地址,甚至是机器的内网地址。 uwsgi+nginx+django 我们…继续阅读 »
Python

解决python模块报错:“bz2 module is not available, No module named ‘_bz2’”

之前python在用pip安装scrapy模块的时候遇到过这个情况,但只是记笔记没有总结出来,今天又遇到了一次,索性博客记录一下。 解决方案 安装 bzip2-devel: 方法一: yum install bzip2-devel 方法二: 如果不行,可以编译安装: wget http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz && tar -zxf bzip2-1.0.6.tar.gz &&…继续阅读 »
Python

nginx+uwsgi完美配置文件,解决“upstream prematurely closed connection”报错

这段时间在折腾django,一开始用单一的uwsgi控制web访问,虽然说没有什么大问题,但是很多东西没法配置,比如超时时间,uwsgi虽然有个“harakiri”配置项,但并没有什么作用。 所以终究还是需要接口nginx来做前端代理,但是在代理的出现了一个问题,前端一直没有响应,nginx错误日志(/var/log/nginx/e…继续阅读 »
Python

快速入门分布式消息队列之 RabbitMQ(下)

我们在 快速入门分布式消息队列之 RabbitMQ(上)和 快速入门分布式消息队列之 RabbitMQ(中) 分别介绍了 RabbitMQ 的对象概念及其关键特性,本篇将通过代码实现的方式来回溯这些知识点,从应用实践的角度继续深入 RabbitMQ。 首先安装 RabbitMQ 的 Python 客户端,最常用的就是 pika: pip install pika …继续阅读 »
Python

快速入门分布式消息队列之 RabbitMQ(中)

紧接上文:快速入门分布式消息队列之 RabbitMQ(上),继续来看 RabbitMQ 都有哪些值得我们关注的特性。 Message Acknowledgment 消息应答 假设一个场景,消费者接收到了消息,但却在处理消息的过程中发生了意外退出的情况,那么此次消息的传递就应该被视为「无效传递」。显然「无效传递」的情况是…继续阅读 »
Python

快速入门分布式消息队列之 RabbitMQ(上)

之前我们的分布式消息队列使用的是RabbitMQ,但仅限于使用它,但是对于它的内部机制的细节没有太多的认知,偶然从某公众号文章中看到RabbitMQ系列的详解,并且比较通俗易懂,所以拿过来分享一下。 简介 AMQP(Advanced Message Queuing Protocol,高级消息队列协议)是一个基于应用层的异步消息服务协议…继续阅读 »
Python

解决Python3 requests 响应头中文GBK编码报错,无法请求

问题表现: 响应头中有gbk编码的中文,导致requests无法解码读取header。 http包如图: Python 3.4.3 (default, Aug 25 2017, 16:49:50) [GCC 4.8.5 20150623 (Red Hat 4.8.5-11)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import requests >>> res = requests.get('http://down.chinaz.com/download.asp?id=35&…继续阅读 »