随笔分类 -  Python

摘要:当我们处理 IO 密集型的任务的时候很容易相当多线程。 Python 因为 GIL 的关系我们没有办法在 CPU 密集型任务的情况下让解释器让出 CPU,但是当面对网络请求相关的任务的时候,我们却可以使用多线程切换来帮助我们节约 IO 等待时间。 Python3 之后我发现很多之前的恶心的写法现在都 阅读全文
posted @ 2020-08-10 18:55 piperck 阅读(5448) 评论(0) 推荐(0) 编辑
摘要:在使用了最新版的 kafka-python 1.4.6 在 broker 对 topic 进行默认配置的情况下报出类似错误 这里要申明一点,在 1.4.0 以上的 kafka-python 版本使用了独立的心跳线程去上报心跳。 这里报错大概表达的意思是 无法在默认 300000ms 中完成处理操作。 阅读全文
posted @ 2019-08-18 17:06 piperck 阅读(3540) 评论(3) 推荐(0) 编辑
摘要:今天遇到一个情况使用了 Kafka-python 1.3.3 来操作读取 broker 1.0.1 版本的 kafka。出现了 rebalance 之后分配到了客户端,但是 cpu 利用率很高且无法消费的情况。 先是排查了连接方面和代码方面的问题,后来发现都没有问题就把注意力转移到了 kafka-c 阅读全文
posted @ 2019-01-14 10:56 piperck 阅读(1950) 评论(5) 推荐(0) 编辑
摘要:网上提交 scala spark 任务的攻略非常多,官方文档其实也非常详细仔细的介绍了 spark-submit 的用法。但是对于 python 的提交提及得非常少,能查阅到的资料非常少导致是有非常多的坑需要踩。 官方文档对于任务提交有这么一段介绍,但是初次使用者依然会非常疑惑: Bundling 阅读全文
posted @ 2018-12-14 19:15 piperck 阅读(19648) 评论(0) 推荐(1) 编辑
摘要:其实怎么部署 airflow 又哪些特性,然后功能又是如何全面都可以在 Reference 的文章里面找到,都不是重点这里就不赘述了。 这里重点谈一下我在部署完成仔细阅读文档之后觉得可以总结的一些东西,或者踩到的一些坑。 首选明确 airflow 中最重要的几个概念: DAG DAG 意为有向无循环 阅读全文
posted @ 2018-12-11 12:16 piperck 阅读(8802) 评论(0) 推荐(0) 编辑
摘要:backup a easy implement Reference: https://www.cnblogs.com/hanahimi/p/4765265.html hash 表学习笔记 http://python.jobbole.com/86522/?utm_source=blog.jobbole 阅读全文
posted @ 2018-10-26 19:24 piperck 阅读(180) 评论(0) 推荐(0) 编辑
摘要:我前面有篇文章已经详细介绍了一下 Python 的日志模块。Python 提供了非常多的可以运用在各种不同场景的 Log Handler. TimedRotatingFileHandler 是 Python 提供的一个可以基于时间自动切分日志的 Handler 类,他继承自 BaseRotating 阅读全文
posted @ 2018-10-23 16:51 piperck 阅读(4510) 评论(0) 推荐(2) 编辑
摘要:搜了一下自己的 Blog 一直缺乏一篇 Python logging 模块的深度使用的文章。其实这个模块非常常用,也有非常多的滥用。所以看看源码来详细记录一篇属于 logging 模块的文章。 整个 logging 模块的主要部分 1700 来行代码,还是很简单的。我们从实际行为来带大家过下代码 当 阅读全文
posted @ 2018-09-12 12:22 piperck 阅读(3028) 评论(0) 推荐(0) 编辑
摘要:使用 PEEWEE 断断续续的差不多已经三个年头了,但是没有像这次使用这么多的特性和功能,所以这次一并记录一下,需要注意的地方和一些使用细节,之后使用起来可能会更方便。 因为是使用的 SQLAchedemy 的引擎,所以增删改查的语法也很像。 查找方法 cls 这里默认指类对象了 查找单个会使用: 阅读全文
posted @ 2018-06-18 02:57 piperck 阅读(3763) 评论(0) 推荐(0) 编辑
摘要:其实日常中我们使用最多的是 return 很少会使用到 yield 去创造一个生成器。一般就是算算算 算完之后用 return 返回一把。 但是有些情况下 比如需要节约内存不需要一把全部返回,每次使用的时候再去算,我们就会用到生成器。 可以从一个最简单例子来看看: 可以注意到,我在第一次调用 x.n 阅读全文
posted @ 2018-03-09 13:06 piperck 阅读(411) 评论(0) 推荐(0) 编辑
摘要:基本的用法: 1. 先来介绍一把最基本的用法: import argparse parser = argparse.ArgumentParser() parser.parse_args() 在执行 parse_args() 之前,所有追加到命令行的参数都不会生效。 当执行了 parse_args() 阅读全文
posted @ 2018-02-13 14:22 piperck 阅读(92317) 评论(11) 推荐(6) 编辑
摘要:知乎自己在底层造了非常多的轮子,而且也在服务器部署方面和数据获取方面广泛使用 gevent 来提高并发获取数据的能力。现在开始我将结合实际使用与测试慢慢完善自己对 gevent 更全面的使用和扫盲。 在对 gevent loop 的使用上,gevent tutorial 介绍得非常敷衍,以至于完全不 阅读全文
posted @ 2017-12-15 19:48 piperck 阅读(4439) 评论(0) 推荐(1) 编辑
摘要:来到了新公司上班,首先就是得把自己的环境给搭起来。知乎使用了buildout作为python项目的构建工具。 那么什么是 buildout ? buildout的是一款自动化构建工具。由Zope团队开发维护。包名为zc.buildout。 buildout可以为应用构建独立的依赖环境。类似于virt 阅读全文
posted @ 2017-11-20 16:47 piperck 阅读(8277) 评论(0) 推荐(1) 编辑
摘要:接上篇 下面开始分析弹幕信息: 当我们在完成和服务器的握手之后,b站的弹幕服务器就会开始不停的开始给我们推送相关房间的弹幕消息了。老规矩前面16个字节是这个包的相关信息,我们先来看下这条消息的前面16字节在说什么。 00 00 01 38 头部四字节表达数据大小这可以看到是312字节。 00 10 阅读全文
posted @ 2017-10-26 17:46 piperck 阅读(1605) 评论(2) 推荐(0) 编辑
摘要:辞职之后 休息了一段时间,最近准备开始恢复去工作的状态了,所以搞点事情来练练手。由于沉迷b站女妆大佬想做个收集弹幕的然后根据弹幕自动回复一些弹幕的东西。网上搜了一下有个c#的版本,感觉还做得不错,于是准备自己也搞一个,顺便分析一下b站家的协议。 收集需要的信息: 我首先使用charles或者如果你是 阅读全文
posted @ 2017-10-16 14:48 piperck 阅读(4627) 评论(0) 推荐(0) 编辑
摘要:一般现在的SAAS服务提供现在的sdk或api对接服务都涉及到一个身份验证和数据加密的问题。一般现在普遍的做法就是配置使用非对称加密的方式来解决这个问题,你持有SAAS公司的公钥,SAAS公司持有你的公钥,你们就可以进行加密和签名的验证了。 先来看下两种在linux或者mac下面生成key pair 阅读全文
posted @ 2017-07-29 18:20 piperck 阅读(13412) 评论(0) 推荐(0) 编辑
摘要:今天遇到这么一个需求,需要将这样的数据进行分组处理: 处理之后我可能需要得到这样的结果: 找了一些办法,最后想到了以前用过的在itertools里面的包groupby方法,因为比较少使用所以总是忘。它可以轻松的实现分组功能,由于是itertools包里面的,所以它的返回是一个迭代器。这一点要注意下面 阅读全文
posted @ 2017-07-21 18:06 piperck 阅读(3876) 评论(0) 推荐(0) 编辑
摘要:最近使用tornado做长链接想着怎么着也要试试websocket协议吧。所以说干就干。 首先要知道websocket是基于http协议的,为什么这么说?因为从协议来说,websocket是借用了一部分为http请求头信息来进行验证和请求的的。 让我们来看一个标准的websocket请求头: 可以看 阅读全文
posted @ 2017-06-21 12:10 piperck 阅读(27913) 评论(4) 推荐(1) 编辑
摘要:在更新了macos之后就发现无法正确安装python-mysql包了。 上网查阅了一下应该是c库或者osx的基础工具变动带来的问题。看到很多解决办法说使用pymysql,拜托我问的是如何安装python-mysql啊。pure-python虽然很爽但是略慢啊。 最后在stackoverflow上找到 阅读全文
posted @ 2017-05-08 15:54 piperck 阅读(580) 评论(0) 推荐(0) 编辑
摘要:今天在生成数据的时候遇到了这个需求,其实写一个for循环可以很容易解决这个问题,但是无论是性能还是酷炫程度上都不行 所以顺手搜索了一下。 例子是将 变成 plan1: 使用列表推导式 plan2: 使用reduce plan3: 使用itertool plan4: 使用sum 那么,哪种方法最快呢? 阅读全文
posted @ 2017-02-07 14:35 piperck 阅读(774) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示