神级操作:daemon用python做,省了好几个月的加班「真实案例」

Gradle构建提速实战:从gradle.properties到Daemon调优 Gradle构建性能本质上是JVM运行时、构建生命周期与缓存机制协同作用的结果。其核心原理在于通过配置优化(如jvmargs调优、daemon管理)、并行策略适配、构建缓存启用及AGP版本协同,实现配置阶段确定性、执行阶段低开销、输出阶段可复用。技术价值体现在显著降低clean build耗时(实测最高降幅52%)、提升CI/CD稳定性与开发者本地迭代效率。典型应用场景包括Android多模块项目、Kotlin Multiplatform工程及持续集成环境。本文聚焦gradle国内镜像配置、gradle.p 阅读详情

这个daemon基本上没有人会用python去做。但我看到iotop里用到ctypes对netlink接口的封装,惊为天人,并且python更加适合对配置解析与处理。我斗胆用python实现了这个daemon,调试起来如丝般顺滑,然后就减少了好几个月的加班。(真实实例)
在这里插入图片描述

1. ipython + ctypes: 调试/测试Linux API的交互式运行环境

REPL的好处不言自明,在开发和调试时能大大的提高效率。尤其是需要对API进行快速验证时。

我最早是用gdb来做一些REPL的事情,但毕竟操作复杂,交互式功能有限。而用ctypes,就爽快多了,ctypes可以直接人so中提取出函数,在Python层面稍加包装,就能直接使用,不用编译/连接,保持运行状态,结果出来直接用Python分析……简直是画面太美

                                                  真实场景:

ipython是最好的REPL!(我喜欢Python,至少有40%的好感来自ipython)

我们的运营环境有数十万host,host上去除了编译环境,某一天,我们对某个系统调用的返回产生怀疑。于是,按照通常的作法,在开发机上写一个示例程序,编译,拷贝到运营机,运行,反复执行这一个过程。

那么有了ctypes,直接在python/ipython的REPL里调试就好了。还不容易留下可疑的可执行程序。

2. ctypes作为胶水

ctypes增强了python作为胶水语言的能力,从进程调用/统一协议级别的脱水直接深入到二进制级别的脱水。这样看来,C++对C的兼容就显得没那么重要了

                                                  真实场景:

某个执行框架,插件以so的形式提供,so提供固定的函数入口。重构时打算去除语言耦合,改用进程调用的方式调用插件(类似于cgi server,这样可以减少对插件编写的限制,插件本身也更容易测试,防止so崩溃造成框架整体崩溃)。但是很多插件的作者已离职,于是只需要框架额外增加从so里调用函数出来即可,做到平滑升级。

3. ctypes与系统编程

ctypes作为一种轻量并且内置的c语言“代理”,使得python极大地增强了系统编程的能力。

至此,系统编程的代码也可以变得更加优雅。

                                                  真实场景:

sdn/vpc方案需要对内核协议栈做较多的调整,从管理的层面上,网络配置由中央控制并下发。因此,host上存在一个daemon,一方面要接受zookeeper的配置变更通知,另一方面要把配置解析后通过netlink与内核通信。

如果各位同学有任何想问的或者有什么想学编程的同学都可以私信我拿干货和资料以及教程哈!

Python对CAPM和Fama French Three Factor model的初步学习 Python对CAPM和Fama French Three Factor model的初步学习概述介绍建模与分析CAPMFama French Three-Factor Model总结 概述 本文主要使用CAPM(资本资产定价模型)和Fama French Three Factor model来评估中国股票市场的股票价格。 使用CAPM来选择投资组合,然后建立Fama法国三因素模型来评估投资组合... 阅读详情

相关推荐

高云FPGA系列教程(7):ARM GPIO外部中断

高云GN1NSR-4C共有16个GPIO,每个GPIO可配置成输入或输出模式,支持中断输入,触发方式可选择:上升沿、下降沿、高电平、低电平触发。中断优可通过NVIC进行设置,支持 0-7 可编程中断优

whik1194的博客 1326

谈谈python threading daemon

python的threading类库使用时,可以设置线程位daemon线程,那么何谓daemon线程? daemon线程:守护线程,后台线程。顾名思义它就是运行在后台执行,并随着程序的退出而退出的。 设置为daemon的线程和没有设置为daemon的线程有什么不同 daemon线程: 当一个线程设置为daemon线程时,主线程结束时,不会因为daemon线程还没有结束运行而阻塞。也就是主线...

yrx0619的专栏 7397

爆肝十二万字《python从零到精通教程》,从零教你变大佬(建议收藏).md

博客也有,如果需要本地文件,可下载。未经允许不得转载传阅。

新手如何运行第一个python程序

不少新手朋友 遇到的第一个问题,不是Python的数据结构,不是Python的类库使用,更不是第三方模块 、框架的应用 ,而是简单的“如何运行”! Python可用以下三种方式运行,举例在Windows平台上,不过Linux平台亦是如此。 1. 使用Python自带的IDLE 在开始-->程序 -->Python2.5(视你安装的版本而不同)中找到IDLE(...

Just Code 1894

pythondaemon作用

在脚本运行过程中有一个主线程,若在主线程中创建了子线程,当主线程结束时根据子线程daemon属性值的不同可能会发生下面的两种情况之一: 1。如果某个子线程的daemon属性为False,主线程结束时会检测该子线程是否结束,如果该子线程还在运行,则主线程会等待它完成后再退出; 2。如果某个子线程的daemon属性为True,主线程运行结束时不对这个子线程进行检查而直接退出,同时所有daemon值为T...

weixin_44540204的博客 7993

Python多进程编程

. multiprocessingpython中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU的资源,在python中大部分情况需要使用多进程。Python提供了非常好用的多进程包multiprocessing,只需要定义一个函数,Python会完成其他所有事情。借助这个包,可以轻松完成从单进程到并发执行的转换。multiprocessing支持子进程、通信和共享数据、执行不同形式...

weixin_33890499的博客 904

[转] 使用PythonLinux的守护进程(daemon)

A simple unix/linux daemon in Pythonhttp://www.jejik.com/articles/2007/02/a_simple_unix_linux_daemon_in_python/by Sander MarechalIvewritten a simple Python class for creating daemons

tatetian's tech blog 2243

python调用大漠插件_daemonpython好几个加班真实案例

这个daemon基本上没有人会用python。但我看到iotop里用到ctypes对netlink接口的封装,惊为天人,并且python更加适合对配置解析与处理。我斗胆用python实现了这个daemon,调试起来如丝般顺滑,然后就减少了好几个加班。(真实实例)1. ipython + ctypes: 调试/测试Linux API的交互式运行环境REPL的好处不言自明,在开发和调...

weixin_39752828的博客 866

如何使python脚本运行daemon模式

有一个很好的库可以完成这一功能,可惜因为文档少所以网上例子不太多库名:python-daemon可以通过Pip来安装最简单的使用方式import daemon with daemon.DaemonContext(): print "your code"当然代码块中最好放一个长时间执行并写日志到某个路径的代码,方便观察代码的执行情况简单但是缺乏必要的控制,比如 如果我们想保证无论多次执行程

sdcxyz的专栏 7722

python 多线程中的 join 和 daemon

文章目录第一关:简单的 join()第二关:join(timeout)第三关:setDaemon(True) 第一关:简单的 join() import threading import time def run(): time.sleep(2) print('当前线程的名字是: ', threading.current_thread().name) time.sleep(2) if __name__ == '__main__': print('这是主线程:', th

车子(chezi) 1309

python关闭线程daemon_[Python]Threading.Thread之Daemon线程

之前对Daemon线程理解有偏差,特记录说明:一、什么是DaemonA thread can be flagged as a “daemon thread”. The significance of this flag is that the entire Python program exits when only daemon threads are left. The initial val...

weixin_39706491的博客 278

python对于守护进程join , 以及daemon 的使用条件

python中对于守护进程join , 以及daemon 的使用条件

几许的博客 1110

python线程的daemon选项作用

python线程的daemon选项作用     daemon是守护的意思,当daemon赋值为True时,进程不会等到线程的结束,进程一结束,线程也会结束;当daemon赋值为False时,进程会等线程执行结束再退出。打个比方,daemon为False,就相当于领导等员工活干完了,才下班;daemon为True,就相当于领导一走,员工也马上撤了,如果不设置,默认领导是会等员工再走的(@&@...

leeshineCSDN的博客 1874

python daemon install

python daemon install sudo easy_install python-daemon#!/usr/bin/env python#encoding=utf-8import daemonimport timeimport oswith daemon...

141

python中的daemon守护进程实现方法

守护进程是生存期长的一种进程。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。 守护进程的特性 1.在后台运行 2.与其运行前的环境隔离开来。这些环境包括未关闭的文件描述符、控制终端、会话和进程组、工作目录以及文件创建掩码等。这些环境通常是守护进程从执行它的父进程(特别是shell)中继承下来的。 3.启动方式特殊

雪峰流云 2万+

怎么用python编写程序实现6_编写pythondaemon程序

以前把守护进程与后台任务搞混了,后面看了文章才知道这两者的区别,写此文表达自己对守护进程的理解.1:什么是守护进程?所谓守护进程是一种是 Linux 的一种长期运行的后台服务进程,httpd、named、sshd 等服务都是以守护进程 Daemon 方式运行的,通常服务名称以字母d结尾,也就是 Daemon 第一个字母.无需控制终端(不需要与用户交互)在后台运行生命周期比较长,一般是随系统启动和关...

weixin_29314405的博客 255

python调用Linux下so文件

1、通过C语言编写一个简单max函数,生成一个max.so链接库 /* * # -shared 为链接库 让编译器知道是要编译一个共享库 * # -fPIC(Position Independent Code) 编译生成代码与位置无关 */ int max(int a,int b) { return a>b?a:b; } /* * gcc -Wall -g -fPIC -c max.c -o max.o * gcc -shared max.o -o max.so * -g

Python热爱者的博客 3183

【MCP(Model Context Protocol)开发到发布完整指南】

MCP(Model Context Protocol)开发到发布完整指南

晨埃 226

Python 批量压测代理质量:延迟与成功率统计脚本

上一篇《爬虫代理选型指南》里提到,选代理不要只看商家宣传页,要自己实测五项:可用率、延迟、并发达标率、出口一致性、失败形态。这篇就把其中最核心的两项——延迟和成功率——成一套可以直接跑的脚本。任何一家的代理,跑一遍就知道成色。

weixin_44617651的博客 37

Gradio 极简入门:三分钟为AI模型打造交互界面,并对比Streamlit与Dash如何选型

Gradio 极简入门:三分钟为AI模型打造交互界面,并对比Streamlit与Dash如何选型

算法工程师 454

基于Python的爱奇艺视频数据可视化分析系统

长视频平台剧集、评分、热度与评论数据体量大、维度多,手工汇总难以快速把握类型结构、口碑分布与主演导演影响力。系统采用 B/S 架构,后端入口为app.py,运行端口8060;数据库使用 MySQL(库名iqiyi),经 PyMySQL 访问。前台基于 Bootstrap 5、本地中的 ECharts 5 与 echarts-wordcloud,配合主题。业务表包括usersdramascommentsfavorites。数据可通过导入,或经/ 相关脚本补充样本。分析层在。

qq_35928134的博客 191
上一篇: 3分钟学完Python,直接从入门到精通【史上最强干货库】
下一篇: 避开此几类神坑,保你玩转python畅通无阻「史上最强详解」
Java_GodBless
博客等级 码龄6年 6粉丝 22原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值