- 博客(16)
- 收藏
- 关注
原创 Python定时任务框架:APScheduler源码剖析(二)
前言在上一篇文章中,简单的捋了一遍使用BackgroundScheduler调度器做定时任务的流程,本篇接着上一篇文章,分析一下_real_add_job方法和_main_loop方法。虽然APScheduler有多种不同的调度器以及多种不同的使用方式,但其核心都是类似的,一通百通。对了,文中分析的APScheduler是当前最新版3.6.1。剖析_real_add_job回顾一下上篇文...
2019-12-18 14:37:05
520
原创 Python定时任务框架:APScheduler源码剖析(一)
前言APScheduler是Python中知名的定时任务框架,可以很方面的满足定时执行或周期性执行程序任务等需求,类似于Linux上的crontab,但比crontab要更加强大,该框架不仅可以添加、删除定时任务,还提供多种持久化任务的功能。APScheduler弱分布式的框架,因为每个任务对象都存储在当前节点中,只能通过人肉的形式实现分布式,如利用Redis来做。第一次接触APSchedu...
2019-12-17 15:15:24
671
原创 MySQL插入优化与requests连接池
最近工作比较忙,此外花了时间看杂书,文章写的比较少。本篇文章分享一个工作中遇到的小问题。背景要完成一个开发任务,读取一个具有80w条数据的CSV文件,将其入库,因为CSV文件中缺少2个关键数据,需要通过调用内部Web API接口的形式去获得,2个参数分别请求两个URL,每次请求参数不同。MySQL插入优化先不考虑Web API方面的内容,80w条数据,如何快速的入库MySQL?一个直观...
2019-12-13 16:58:52
288
原创 Flask源码剖析(六):响应是怎么实现的
前言接着此前Flask源码剖析系列,这次来看看Flask是怎么样生成响应的。基本使用Flask会将视图函数返回的值作为Response返回给客户端,这一步对Flask框架使用者而言是透明的,最基本的用法如下:@app.route('/')def hello(): return 'Hello, 二两!', 200, {'Content-Type': 'application/jso...
2019-12-09 13:42:21
229
原创 微信Hook实战记录2:动手实现恶意dll内存插入器
Hook任何软件,整体思路都是通过内存调试软件对软件运行时内存进行断点调试,找到想要hook的内存地址,转为可以通过程序主dll可以获得的相对地址,然后再此处插入自己的恶意汇编代码,如果代码比较复杂,还需要编写寄存器保护逻辑,避免自己的恶意代码修改了寄存器中的值后,程序正常的逻辑无法运行。前言在上一篇文章「微信Hook实战记录 1:找到个人信息」中,介绍了如何使用OD与CE来找到微信中存放个人...
2019-12-08 23:39:31
1117
原创 Flask源码剖析(二):路由原理
前言在上一篇中,从最简单使用形式入手,简单的过了一遍Flask应用启动流程以及其背后的原理,本篇将会以类似的风格剖析Flask路由相关的内容,同样不会涉及过多细节,力求从较高的维度去看。Flask版本:1.0.2endpoint端点回归一下上一篇文章,在通过@app.route()装饰器将函数转为Flask视图函数时,多次提及了endpoint,对应的add_url_rule()代码如下。...
2019-11-30 12:28:18
241
原创 Flask源码剖析(一):Flask启动流程
前言Flask是Python著名的web框架,其特点是轻量简单易扩展。Flask源码量挺多的,本文从比较高的维度整体看一下Flask关键结构的实现原理,文中不会细究太多细节,不多废话,开搞。考虑篇幅长度,分多篇文章来讨论,本文系列文章以Flask 1.0.2 为基准。前置背景知识Flask依赖于werkzeug与jinja这两个核心库,werkzeug是HTTP与WSGI相关的工具集,而...
2019-11-30 12:27:22
410
原创 装饰器在大型项目中几个有趣的用法
前言众所周知,Python是一门动态语言,变量不需要声明类型,这种灵活的形式让多人进行大型Python开发时会面临类型不明确的问题,项目中类和方法很多了,方法的参数就会让人迷惑,如果开发者自身编码风格又比较随意,那么项目就会变得难以维护。受公司项目启发,这里分享关于装饰器的几点思考。“全局”静态方法静态方法很简单,使用@staticmethod装饰器则可,简单例子如下:class MyC...
2019-11-30 12:24:26
232
原创 自由职业之路-从每小时5美元的Upwork工作到百万美元跨境咨询业务
title: 自由职业之路-从每小时5美元的Upwork工作到百万美元跨境咨询业务tags: 随笔原文:https://www.sinostep.com/from-5USD-hourly-job-on-upwork-to-million-dollar-cross-border-consulting-business/简介从2011年以来,我一直在Upwork上从事工作,一开始,我的入...
2019-08-29 23:21:00
7474
1
原创 Python进阶:深入GIL(上篇)
Python进阶:深入GIL(上篇)HackPython致力于有趣有价值的编程教学简介熟悉Python的人理应都听过GIL(Global Interpreter Lock,全局解释器锁)
2019-08-06 14:12:40
226
原创 Python进阶:使用ctypes将Python运行速度提升30倍
Python进阶:使用ctypes将Python运行速度提升30倍HackPython致力于有趣有价值的编程教学简介当Python面临运算密集型任务时,其速度总是显得力不从心。要提升Python代码运行速度有多种方法,如ctypes、cython、CFFI等,本篇文章主要从ctypes方面介绍如何提升Python的运行速度
2019-08-06 14:05:34
1555
1
原创 Python进阶:深入GIL(上篇)
Python进阶:深入GIL(上篇)HackPython致力于有趣有价值的编程教学简介熟悉Python的人理应都听过GIL(Global Interpreter Lock,全局解释器锁)
2019-08-02 13:48:34
279
原创 Python进阶:浅拷贝与深拷贝
Python进阶:浅拷贝与深拷贝HackPython致力于有趣有价值的编程教学简介Python中的拷贝分为浅拷贝与深拷贝,如果学习过C语言的指针,会发觉其中的一些共性。如果你不了解浅拷贝与深拷贝,那么在使用Python的过程中,就容易出现意料之外的状态
2019-07-25 12:01:22
158
原创 Python进阶必学库:使用asyncio实现协程爬虫
Python进阶必学库:使用asyncio实现协程爬虫HackPython致力于有趣有价值的编程教学简介asyncio是Python3.x中比较复杂的概念
2019-07-25 11:42:30
1678
原创 Python进阶:百万「并发」基础之异步编程(下篇)
Python进阶:百万「并发」基础之异步编程(下篇)HackPython致力于有趣有价值的编程教学简介在上一节中,了解了yield、yield from等概念,此时Python以及具有编写协程实现「回调」的能力,而「回调」是异步编程的基础,随后Python语言的开发者利用yield from能力,在Python3.4中引入了异步I/O框架asyncio,该框架在Python3.5中被完善...
2019-07-21 11:54:57
189
原创 Python进阶:百万「并发」基础之异步编程(下篇)
HackPython致力于有趣有价值的编程教学简介在上一节中,了解了yield、yield from等概念,此时Python以及具有编写协程实现「回调」的能力,而「回调」是异步编程的基础,随后Python语言的开发者利用yield from能力,在Python3.4中引入了异步I/O框架asyncio,该框架在Python3.5中被完善并作为标准库之一,用于基于协程的异步I/O编程,本节就...
2019-07-20 22:27:04
155
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人