摘要: Celery 使用(一) 架构 如下图: 整体的流程,任务发布者或者是任务调度,将任务发送到消息代理中,接着消息代理将任务发送给消费者来执行,其执行完后将结果保存到backend中。 使用 先创建Celery实例和相关的任务,这里配置Celery可以通过创建一个配置文件,然后通过app.config阅读全文
posted @ 2017-08-18 00:13 banananana 阅读(42) 评论(0) 编辑
摘要: RabbitMQ中的使用 这篇文章将会介绍关于RabbbitMQ的使用,并且使用的是kombo(客户端的Python实现)来实现; 安装 如果使用的是mac安装的话,可以先安装到指定的位置,接着配置命令访问路径: vi .bash_profile,输入下面两行 RABBIT_HOME=/usr/lo阅读全文
posted @ 2017-08-17 01:35 banananana 阅读(366) 评论(0) 编辑
摘要: web框架总结 前提 一个web框架需要包含的组件或者功能有: wsgi 首先要了解WSGI的相关知识,如下: web server:指的是软件程序,它从客户端接受请求,然后返回一个Response,需要注意的是它不创建Response,web app才是创建Response的主体。web app:阅读全文
posted @ 2017-08-15 23:34 banananana 阅读(85) 评论(0) 编辑
摘要: 装饰器总结 前提 使用装饰器的前提在于Python提供的特性: 可以通过一个例子来了解: def get_animal(name='dog'): def dog(): return 'this is a dog' def cat(): return 'this is a cat' # 返回函数对象 阅读全文
posted @ 2017-08-15 03:29 banananana 阅读(154) 评论(0) 编辑
摘要: Python 协程总结 理解 协程,又称为微线程,看上去像是子程序,但是它和子程序又不太一样,它在执行的过程中,可以在中断当前的子程序后去执行别的子程序,再返回来执行之前的子程序,但是它的相关信息还是之前的。 优点: 如果要充分利用CPU多核,可以通过使用多进程+协程的方式 使用 打开asyncio阅读全文
posted @ 2017-08-13 09:21 banananana 阅读(133) 评论(1) 编辑
摘要: Python 垃圾回收机制 内存管理 Python中的内存管理机制的层次结构提供了4层,其中最底层则是C运行的malloc和free接口,往上的三层才是由Python实现并且维护的,第一层则是在第0层的基础之上对其提供的接口进行了统一的封装,因为每个系统都可能差异性。 内存池 Python为了避免频阅读全文
posted @ 2017-08-12 13:03 banananana 阅读(168) 评论(1) 编辑
摘要: 求二叉树中任意两个结点的距离 实现步骤: 1 class Node(object): def __init__(self, value=0): self.value = value self.left = self.right = None def get_path_length(root, n, 阅读全文
posted @ 2017-08-12 00:20 banananana 阅读(70) 评论(1) 编辑
摘要: 排序算法 下面算法均是使用Python实现: 插入排序 原理:循环一次就移动一次元素到数组中正确的位置,通常使用在长度较小的数组的情况以及作为其它复杂排序算法的一部分,比如mergesort或quicksort。时间复杂度为 O(n2) 。 # 1nd: 两两交换 def insertion_sor阅读全文
posted @ 2017-08-10 07:00 banananana 阅读(134) 评论(1) 编辑
摘要: InnoDB索引原理 索引能够提高访问的速率 B+树索引(最为常用和最为有效)、全文索引、哈希索引。 数据库中的B+树索引可以分为聚集索引和辅助索引,但是不管是聚集还是辅助的索引,其内部都是B+树,是高度平衡的,叶子结点存放着所有的数据。聚集索引和辅助索引最大对的不同就是,叶子结点存放的是否是一整行阅读全文
posted @ 2017-08-09 13:10 banananana 阅读(315) 评论(3) 编辑
摘要: 基本操作 通用操作 1. export 显示所有的环境变量,也可以获取到某个变量的详细信息; export # 显示所有 echo $SHELL # 只显示SHELL 2. whereis 使用系统自动构建的数据库来搜索可执行文件; whereis python # 如果搜不到就不输出 3. whi阅读全文
posted @ 2017-08-07 16:04 banananana 阅读(37) 评论(0) 编辑
摘要: Django是如何工作的? 概念 以线上版本中Django和Nginx、uwsgi搭配,这里首先要了解uWSGI、uwsgi、WSGI分别代表着什么,其中uWSGI实现了uwsgi、WSGI、HTTP协议的Web服务器,WSGI是通信协议,而uwsgi则是线路协议。 流程 当用户启动Nginx以后,阅读全文
posted @ 2017-08-07 09:19 banananana 阅读(201) 评论(8) 编辑
摘要: RabbitMQ知识总结 AMQP协议 AMQP协议是一个提供统一消息服务的应用层标准协议,并不会受到客户端/中间件不同产品、不同开发语言等条件的影响。RabbitMQ则是基于该协议实现的。 举个例子来说,如下图,生产者将消息发送到交换机上,交换机接收到信息以后按照相应的路由键路由到队列中,这里的交阅读全文
posted @ 2017-07-27 11:28 banananana 阅读(752) 评论(4) 编辑
摘要: 最短路径算法 最短路径算法通常用在寻找图中任意两个结点之间的最短路径或者是求全局最短路径,像是包括Dijkstra、A*、Bellman-Ford、SPFA(Bellman-Ford的改进版本)、Floyd-Warshall、Johnson、BFS等等,这里要集中介绍Dijkstra和Floyd,前阅读全文
posted @ 2017-07-26 08:11 banananana 阅读(355) 评论(3) 编辑
摘要: 最小生成树算法 一个连通图可能有多棵生成树,而最小生成树是一副连通加权无向图中一颗权值最小的生成树,它可以根据Prim算法和Kruskal算法得出,这两个算法分别从点和边的角度来解决。 Prim算法 理解 Prim算法从单一顶点开始,其按照以下步骤逐步扩大树中所包含顶点的数目,直到遍及连通图的所有顶阅读全文
posted @ 2017-07-20 14:35 banananana 阅读(240) 评论(0) 编辑
摘要: Python collections模块总结 除了我们使用的那些基础的数据结构,还有包括其它的一些模块提供的数据结构,有时甚至比基础的数据结构还要好用。 collections ChainMap 这是一个为多个映射创建单一视图的类字典类型,也就是说,它同样具有字典类型的方法,它比基础数据结构中的字典阅读全文
posted @ 2017-07-19 11:38 banananana 阅读(196) 评论(2) 编辑