2019年2月24日

在Flask中使用Celery的最佳实践

摘要: 写在前面 本最佳实践是基于作者有限的经验,欢迎大家共同讨论,可以持续维护此最佳实践。另本文中所使用的环境为Mac&Ubuntu环境,软件版本如下: Celery (4.1.0) Flask (0.12.1) RabbitMQ(3.6.9) librabbitmq (1.6.1) 介绍 简单来说Cel 阅读全文

posted @ 2019-02-24 18:34 ExplorerMan 阅读(603) 评论(1) 推荐(0)

二十三种设计模式及其python实现

摘要: 二十三种设计模式及其python实现 本文源码寄方于github:https://github.com/w392807287/Design_pattern_of_python 参考文献: 《大话设计模式》——吴强 《Python设计模式》——pythontip.com 《23种设计模式》——http 阅读全文

posted @ 2019-02-24 18:31 ExplorerMan 阅读(247) 评论(0) 推荐(0)

常见设计模式 (python代码实现)

摘要: 1.创建型模式 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。 比如,某个服务器程序的配置信息存放在一个文件中,客户端通过一个 AppConfig 阅读全文

posted @ 2019-02-24 18:30 ExplorerMan 阅读(536) 评论(0) 推荐(0)

设计模式(Python)-观察者模式

摘要: 本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:27 ExplorerMan 阅读(1742) 评论(0) 推荐(1)

设计模式(Python)-策略模式

摘要: 本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:27 ExplorerMan 阅读(243) 评论(0) 推荐(1)

设计模式(Python)-简单工厂,工厂方法和抽象工厂模式

摘要: 本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:26 ExplorerMan 阅读(268) 评论(0) 推荐(0)

设计模式(Python)-单例模式

摘要: 本系列文章是希望将软件项目中最常见的设计模式用通俗易懂的语言来讲解清楚,并通过Python来实现,每个设计模式都是围绕如下三个问题: 为什么?即为什么要使用这个设计模式,在使用这个模式之前存在什么样的问题? 是什么?通过Python语言来去实现这个设计模式,用于解决为什么中提到的问题。 怎么用?理解 阅读全文

posted @ 2019-02-24 18:05 ExplorerMan 阅读(206) 评论(0) 推荐(0)

Python中的单例模式的几种实现方式的及优化

摘要: 阅读目录(Content) 单例模式 实现单例模式的几种方式 1.使用模块 2.使用装饰器 3.使用类 4.基于__new__方法实现(推荐使用,方便) 5.基于metaclass方式实现 相关知识 实现单例模式 阅读目录(Content) 单例模式 实现单例模式的几种方式 1.使用模块 2.使用装 阅读全文

posted @ 2019-02-24 17:28 ExplorerMan 阅读(246) 评论(0) 推荐(0)

Python协程 Gevent Eventlet Greenlet

摘要: https://zh.wikipedia.org/zh-cn/%E5%8D%8F%E7%A8%8B 协程可以理解为线程中的微线程,通过手动挂起函数的执行状态,在合适的时机再次激活继续运行,而不需要上下文切换。所以在python中使用协程会比线程性能更好。 Tornado协程 http://blog. 阅读全文

posted @ 2019-02-24 17:01 ExplorerMan 阅读(3486) 评论(0) 推荐(0)

python基于协程的网络库gevent、eventlet

摘要: python网络库也有了基于协程的实现,比较著名的是 gevent、eventlet 它两之间的关系可以参照 Comparing gevent to eventlet, 本文主要简单介绍一下eventlet一个例子 客户端: import eventletfrom eventlet.green im 阅读全文

posted @ 2019-02-24 16:57 ExplorerMan 阅读(418) 评论(0) 推荐(0)

python中多进程+协程的使用以及为什么要用它

摘要: 前面讲了为什么python里推荐用多进程而不是多线程,但是多进程也有其自己的限制:相比线程更加笨重、切换耗时更长,并且在python的多进程下,进程数量不推荐超过CPU核心数(一个进程只有一个GIL,所以一个进程只能跑满一个CPU),因为一个进程占用一个CPU时能充分利用机器的性能,但是进程多了就会 阅读全文

posted @ 2019-02-24 16:55 ExplorerMan 阅读(378) 评论(0) 推荐(0)

python爬虫——多线程+协程(threading+gevent)

摘要: 上一篇博客中我介绍了如何将爬虫改造为多进程爬虫,但是这种方法对爬虫效率的提升不是非常明显,而且占用电脑cpu较高,不是非常适用于爬虫。这篇博客中,我将介绍在爬虫中广泛运用的多线程+协程的解决方案,亲测可提高效率至少十倍以上。 本文既然提到了线程和协程,我觉得有必要在此对进程、线程、协程做一个简单的对 阅读全文

posted @ 2019-02-24 16:46 ExplorerMan 阅读(471) 评论(0) 推荐(0)

Python几种并发实现方案的性能比较

摘要: 偶然看到Erlang vs. Stackless python: a first benchmark,对Erlang和Stackless Python的并发处理性能进行了实验比较,基本结论认为二者有比较相近的性能。我看完产生的问题是,Stackless Python与Python的其他并发实现机制性 阅读全文

posted @ 2019-02-24 16:35 ExplorerMan 阅读(1586) 评论(1) 推荐(0)

Python threadpool传递参数

摘要: threadpool模块是一个很老的实现python线程池的模块,pypi已经建议用multiprocessing代替它了,但是,它使用的便捷性还是征服了一批忠实用户。 threadpool模块实现多线程只需要如下几行代码: 1 2 3 4 5 from threadpool import * po 阅读全文

posted @ 2019-02-24 15:24 ExplorerMan 阅读(667) 评论(0) 推荐(0)

python线程池(threadpool)模块使用笔记

摘要: 一、安装与简介 pip install threadpool 第一行定义了一个线程池,表示最多可以创建poolsize这么多线程; 第二行是调用makeRequests创建了要开启多线程的函数,以及函数相关参数和回调函数,其中回调函数可以不写,default是无,也就是说makeRequests只需 阅读全文

posted @ 2019-02-24 15:23 ExplorerMan 阅读(505) 评论(0) 推荐(0)

导航