单日抓取十亿级的爬虫框架设计

python 2,742 views
日抓取十亿级的爬虫框架设计 日抓取十亿级的爬虫框架设计 日抓取十亿级的爬虫框架设计 日抓取十亿级的爬虫框架设计 爬虫这个词,让我又爱又恨.    抓过比特币,股票, 微信,微博,各大电商,知乎,汽车论坛,宝宝论坛,几十万的递归网...
阅读全文 11

单日抓取十亿级的爬虫框架设计

10-11 2,742 views

日抓取十亿级的爬虫框架设计 日抓取十亿级的爬虫框架设计 日抓取十亿级的爬虫框架设计 日抓取十亿级的爬虫框架设计 爬虫这个词,让我又爱...
阅读全文 11

使用pre-commit flake8来规范项目的pep8

python 1,787 views
pre-commit的规范 正如pre-commit的字面意思, 他的功能就是在commit之前做一些检测.  大多数是用来检测代码的规范,当然你可以加各种奇葩的需求,当你git commit的时候git会自动调用该脚本.  说来有意思,我见过的python程序员,要不很规范,要不很...
阅读全文 0

使用pre-commit flake8来规范项目的pep8

10-07 1,787 views

pre-commit的规范 正如pre-commit的字面意思, 他的功能就是在commit之前做一些检测.  大多数是用来检测代码的规范,当然你可以加各种奇葩的需求,当你...
阅读全文 0

源码分析peewee orm的读写分离

python 2,548 views
就不再长篇大论了…   我相信很多朋友都在使用ORM库来代替繁杂的原生的sql语句。 但如果有特需一点的需求,比如要主从分离?  我们以前的做法很是暴力,直接修改peewee的源码,当他在调用select相关函数的时候,会重置一个mysql db连接,当然是改成...
阅读全文 1

源码分析peewee orm的读写分离

08-14 2,548 views

就不再长篇大论了…   我相信很多朋友都在使用ORM库来代替繁杂的原生的sql语句。 但如果有特需一点的需求,比如要主从分离?  我们以前的做...
阅读全文 1

关于gevent queue遭遇hub.LoopExit问题

python 3,076 views
我的上下文 “ gevent.hub.LoopExit: This operation would block forever”   ,   使用过gevent queue的朋友估摸会遇到这类问题把?   前两天写个小东西的时候,又再次遇到了block forever 问题..     报错...
阅读全文 4

关于gevent queue遭遇hub.LoopExit问题

08-07 3,076 views

我的上下文 “ gevent.hub.LoopExit: This operation would block forever”   ,   使用过gevent queue的朋友估摸会遇到这...
阅读全文 4

基于timerfd epoll开发的io定时器 [下]

python 2,223 views
接着上下文 接着上文, 上次内容是说epoll timerfd的原理和函数方法,下文主要是python epoll timerfd的之间的调用. 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新. http://xiaorui.cc/?p=3693 在描述之...
阅读全文 0

基于timerfd epoll开发的io定时器 [下]

07-30 2,223 views

接着上下文 接着上文, 上次内容是说epoll timerfd的原理和函数方法,下文主要是python epoll timerfd的之间的调用. 该文章写的有些乱,欢...
阅读全文 0

基于timerfd epoll开发的io定时器 [上]

python 3,220 views
造一个轮子 对的,我又重新造了一个轮子! 关于周期定时器的轮子。 以前在python环境下,用二叉堆和gevent later写过单机的定时器,后来借用redis的sorted set 加lua实现了分布式的定时器任务管理。 但我坚决不满足, 我一直想实现一个类似libevent,libev那种包...
阅读全文 5

基于timerfd epoll开发的io定时器 [上]

07-29 3,220 views

造一个轮子 对的,我又重新造了一个轮子! 关于周期定时器的轮子。 以前在python环境下,用二叉堆和gevent later写过单机的定时器,后来借用redis的sort...
阅读全文 5

小探python thrift通信框架的设计

python 3,400 views
上下文环境 先废话连篇,老生常谈说下Thrift 是什么?  他是个功能强大的通信协议组件,附带了各级socket服务,自成RPC服务.   我们知道大多数所谓的RPC远程调用服务都是基于http来开发的,为毛?  因为够简单呀。  对于server端 ...
阅读全文 0

小探python thrift通信框架的设计

07-24 3,400 views

上下文环境 先废话连篇,老生常谈说下Thrift 是什么?  他是个功能强大的通信协议组件,附带了各级socket服务,自成RPC服务.   我们...
阅读全文 0

怎么用存储过程来提高事务的并发

DB,python 3,229 views
在描述使用存储过程解决事务并发之前,简单描述下上下问。  我做了一个简单积分的对外接口,因为需要做几个表的查询和创建更改,在调用特别频繁的时候,会发现小范围阻塞的情况,作为同步的接口,这种时间消耗也难让人接受…   事务是做什么...
阅读全文 4

怎么用存储过程来提高事务的并发

07-13 3,229 views

在描述使用存储过程解决事务并发之前,简单描述下上下问。  我做了一个简单积分的对外接口,因为需要做几个表的查询和创建更改,在调用特别频繁的时候...
阅读全文 4

源码分析peewee的异常重试

python 3,446 views
……源码分析peewee的异常重试 … 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.  http://xiaorui.cc/?p=3520 Peewee 是个好用的orm,我们这边遇到复杂的业务逻辑都会使用orm来减轻我们写sql语句代...
阅读全文 0

源码分析peewee的异常重试

07-05 3,446 views

……源码分析peewee的异常重试 … 该文章写的有些乱,欢迎来喷 ! 另外文章后续不断更新中,请到原文地址查看更新.  http://xiaorui...
阅读全文 0

开源模块之python函数调用性能统计

python 3,580 views
群里有个人问我最近怎么不活跃了。 问我这话的人,一看就知道工作不饱和。  话说最近有些忙,走了个小弟, 然后各种开发迭代在后面排着,这堆任务够我跟小弟忙一段时间了。  公司缺高级水平的python程序员, 有兴趣的朋友可以跟我联系。  该文章...
阅读全文 0

开源模块之python函数调用性能统计

06-28 3,580 views

群里有个人问我最近怎么不活跃了。 问我这话的人,一看就知道工作不饱和。  话说最近有些忙,走了个小弟, 然后各种开发迭代在后面排着,这堆任务够我...
阅读全文 0

技术分享之《cdn的设计原理及架构》

python,技术分享,运维 4,430 views
      这次公司大队人马去乌镇庆祝十周年,过程结果都很happy,抽奖还中了人民币,这运气没的说呀。 在乌镇西栅的小河边,我们量子团队一边聊MM,一边聊cdn的东西,很是happy。 同事们都是纯开发出身,对于运维的基础架构没有深入了解过。 在同事的...
阅读全文 6

技术分享之《cdn的设计原理及架构》

06-21 4,430 views

      这次公司大队人马去乌镇庆祝十周年,过程结果都很happy,抽奖还中了人民币,这运气没的说呀。 在乌镇西栅的小河边,我们量子团队一边...
阅读全文 6

使用python封装sd_notify到systemd

python 3,225 views
        我们知道Centos7之后搁浅Sysvinit,改用复杂功能又及其强大,又特别惹人烦恼的systemd.  这个名字取得很大气,直接用system + d .   Sysvint从unix时期就已经早早的存在了,在各大国外的社区都很不少大牛针对init 和 system...
阅读全文 0

使用python封装sd_notify到systemd

06-16 3,225 views

        我们知道Centos7之后搁浅Sysvinit,改用复杂功能又及其强大,又特别惹人烦恼的systemd.  这个名字取得很大气,直接用sys...
阅读全文 0

技术分享 《大话redis设计实现》

python,技术分享 3,640 views
        这次又给朋友公司 (Naver) 做了一次技术分享,主题是《大话redis设计实现》 ,  里面的内容来自 学习《redis设计与实现》 和 阅读redis源码的心得。   话说, 我用redis的历史也有些时间了, 应该有4、5 年了。  运维方面...
阅读全文 1

技术分享 《大话redis设计实现》

06-11 3,640 views

        这次又给朋友公司 (Naver) 做了一次技术分享,主题是《大话redis设计实现》 ,  里面的内容来自 学习《redis设计与实现》...
阅读全文 1

聊聊threading的condition条件变量

python 3,546 views
     Python下有很多的Lock锁,比如Mutex,Rlock,semaphore…  这些都是比较常用的Lock锁。  然而很多时候我们都忘记threading下还有一个叫做condition的条件变量。   condition内部是含有锁的逻辑,不然也没法保证线程之间的...
阅读全文 0

聊聊threading的condition条件变量

05-31 3,546 views

     Python下有很多的Lock锁,比如Mutex,Rlock,semaphore…  这些都是比较常用的Lock锁。  然而很多时候我们都忘记threa...
阅读全文 0

技术分享 《python gil的那些事儿》

python,技术分享 3,070 views
      前段时间一个老友叫我过去做一场技术分享,盛情难却,又有大保健做挟持,不得已还是要花点心思来准备一下。  我承认自己是一个不善于演讲的人,时常会感到词穷,激动的场景下话题有些偏离。 我知道自己这个缺点,所以一直在克服它。 &nb...
阅读全文 2

技术分享 《python gil的那些事儿》

05-30 3,070 views

      前段时间一个老友叫我过去做一场技术分享,盛情难却,又有大保健做挟持,不得已还是要花点心思来准备一下。  我承认自己是一个...
阅读全文 2

聊聊python libev事件库的定时器调度

python 2,830 views
libev 是个比libevent更加简洁的事件库,python的gevent就是使用libev来实现的。  pyev是libev的python封装版本。 下面是个pyev的定时器例子。  Python import signal import pyev def sig_cb(watcher, re...
阅读全文 0

聊聊python libev事件库的定时器调度

05-28 2,830 views

libev 是个比libevent更加简洁的事件库,python的gevent就是使用libev来实现的。  pyev是libev的python封装版本。 下面是个pyev的定时器例子。  ...
阅读全文 0

gevent通过socket补丁实现redis.py非阻塞

python 3,617 views
如题,gevent是使用socket补丁把redis.py改成异步非阻塞化. 异步非阻塞是个有点虚的话题,在python下使用gevent确实解决了io阻塞的问题。 业务场景需要python gevent redis.py的组合,因redis.py涉及到网络io的交互,果断的在开源社区找找gevent有关redis的模块。 ...
阅读全文 0

gevent通过socket补丁实现redis.py非阻塞

05-23 3,617 views

如题,gevent是使用socket补丁把redis.py改成异步非阻塞化. 异步非阻塞是个有点虚的话题,在python下使用gevent确实解决了io阻塞的问题。 业务场景需要pyth...
阅读全文 0

技术分享《一个异步io调度框架的实现》

python,技术分享 4,107 views
今下午在公司内部做了高端话题的分享,话题是异步io调度器是怎么实现的. 另外结合socket服务器又该如何调度处理? 这次的PPT写的有些简略,但基本说明了构建异步io框架的基本元素。  这次的分享由来是什么? 我前端时间一直再写一个调度器,类似于geve...
阅读全文 1

技术分享《一个异步io调度框架的实现》

05-19 4,107 views

今下午在公司内部做了高端话题的分享,话题是异步io调度器是怎么实现的. 另外结合socket服务器又该如何调度处理? 这次的PPT写的有些简略,但基本说明了构...
阅读全文 1

给redis-py提交pull request引起的思考

python 3,686 views
起因是这样的,昨天突然发现以前用redis python的时候,从来没注意过他在多线程,多进程下fd复用的情况,直接都是公用一个连接对象。  对比了多个好项目代码,貌似大家对mysql,mongodb十分的注意,都尽量不要让他有socket fd共享的情况,而对于redis的...
阅读全文 3

给redis-py提交pull request引起的思考

05-17 3,686 views

起因是这样的,昨天突然发现以前用redis python的时候,从来没注意过他在多线程,多进程下fd复用的情况,直接都是公用一个连接对象。  对比了多...
阅读全文 3

一个让我如痴如醉的python内存泄露问题

python 5,313 views
聊一个有意思的话题, 一个让我如痴如醉的内存泄露问题 (memory leak). . . 熟悉我的人,知道我是从devops再到纯开发的岗位。虽然我写过很多的所谓运维平台,什么自动装机,什么集群管理,什么DBA管理,什么监控系统等等… 虽然前后端都是我自己搞...
阅读全文 3

一个让我如痴如醉的python内存泄露问题

05-12 5,313 views

聊一个有意思的话题, 一个让我如痴如醉的内存泄露问题 (memory leak). . . 熟悉我的人,知道我是从devops再到纯开发的岗位。虽然我写过很多的...
阅读全文 3

源码分析multiprocessing的Value Array共享内存原理

python 4,154 views
这次我们通过分析python的multiprocessing的源码,来看看Value Array怎么通过mmap ctypes实现的多进程之间的共享内存.      当第一次使用python多进程模块(multiprocessing)的Value Array做数据共享,就觉得一定是基于mmap实现的。 当...
阅读全文 0

源码分析multiprocessing的Value Array共享内存原理

05-10 4,154 views

这次我们通过分析python的multiprocessing的源码,来看看Value Array怎么通过mmap ctypes实现的多进程之间的共享内存.      当...
阅读全文 0