V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  monsterxx03  ›  全部回复第 9 页 / 共 24 页
回复总数  467
1 ... 5  6  7  8  9  10  11  12  13  14 ... 24  
在 3.4 之前,之前如果一个 class 内部有循环引用,并重载了 del,的确会内存泄漏,celery4.1 就有这个 bug https://github.com/celery/celery/pull/4839
2020-03-12 11:10:37 +08:00
回复了 hsddszjs 创建的主题 问与答 有没有比 wireshark 更清凉更适合调试 tcp 网络协议的工具
右键菜单里 follow tcp stream 就好了嘛, 论协议支持丰富性没有比 wireshark 强的.
2020-03-06 22:31:34 +08:00
回复了 ginakira 创建的主题 机械键盘 有人用过 PLUM NIZ 这把键盘吗?
手感特别软...很容易误触,我不习惯
2020-03-03 18:12:40 +08:00
回复了 black11black 创建的主题 问与答 pyMysql 的参数化查询是如何实现的?原理是什么?
escape 就是转义, 如果参数是 string, 具体到 pymysql 里就做了这个: https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/converters.py#L72

我没看过 sqlalchemy 的实现, 但应该一样在 client 端转义的.

prepare 语句是可以防 sql 注入的: https://dev.mysql.com/doc/refman/8.0/en/sql-prepared-statements.html

Protection against SQL injection attacks. The parameter values can contain unescaped SQL quote and delimiter characters.

这个和 set 转不转义没啥关系. 额, 这么想, 本来输入是一条 select, 通过注入拼接可能变成了一条 delete 语句, 但假如用的是 prepare, 提供给 prepare 的 sql 是你写的, 不会有用户输入, prepare 完它就是一条 select 语句, 后续你传入的 value 玩出花来 mysql 也只是把它当成一个文本参数, 不会再次执行 sql 的编译过程.
2020-03-03 17:11:07 +08:00
回复了 black11black 创建的主题 问与答 pyMysql 的参数化查询是如何实现的?原理是什么?
https://github.com/PyMySQL/PyMySQL/blob/master/pymysql/cursors.py#L161 mogrify 这个函数你跟下去看就知道了, 其实就是发送前把参数做了个本地 escape, 发出去的是一条拼好的 sql.

prepare 不是简单的字符串替换, 可以理解成在 prepare 阶段, sql 被解析成了 MySQL 内部类似 AST 那样的语法树结构,它知道你占位的地方是 input, 最后执行的时候, 不管输入的是什么, 都会被当成 value 去匹配, 而不是和前面的语句拼起来.
默认没有的, 一些工具通过覆盖 LD_PRELOAD 来劫持 execv 等 syscall, 间接得实现记录这个功能, 比如 https://github.com/a2o/snoopy
2020-02-24 14:52:59 +08:00
回复了 uechris 创建的主题 程序员 为什么挖矿脚本人人喊打?
情愿看广告 +1
2020-02-12 22:58:30 +08:00
回复了 fancy2020 创建的主题 DevOps 在服务器上你们自己服务的代码一般放在什么目录下?
/tmp (狗头
2020-02-08 14:02:41 +08:00
回复了 black11black 创建的主题 Python Python 有办法限制字典不能添加新键吗 ?
写个 class 继承 dict,重载__setitem__,直接抛异常
2020-02-06 16:32:50 +08:00
回复了 cainiuwow 创建的主题 奇思妙想 想到一个奇怪的点子--一起写小说
小学语文课上老师就让我们这么干过,开篇是校园故事...后来变成了科幻小说
2020-01-28 23:03:40 +08:00
回复了 nyanyh 创建的主题 Linux Linux 下有暂停线程执行的 API 吗?
PTRACE_ATTACH
2020-01-26 13:09:06 +08:00
回复了 litmxs 创建的主题 问与答 各类口罩以往正常价格是多少啊?
18 年 12 月买的 3m 9501,25 只 125
2020-01-24 15:02:23 +08:00
回复了 w708833018 创建的主题 Go 编程语言 Go 中 make 与 new 的区别是什么?
new 只是&T{}的一个语法糖
大同小异,我们 db migration 的工具是自己写的,但也没什么特别的,也是生成下 sql 然后执行。

实际上线的时候,如果有 schema change, 会分两次 deploy,第一次部署到单独的 server(日常主要是跑 cron,和一些手工脚本的,不承担用户流量),在上面手工运行,用的 mysql(<8.0)原生的 online ddl,但这个也需要在流量低谷时候执行,io 开销很大。同时要求 schema change 做到兼容,第二次部署再把用到新 schema 结构的代码 rollout 到所有 server。整个过程没有 down time,但比较繁琐。

pt schema change 和 github 开源的那个工具原理也大同小异,好处是可以看到进度和控制速度,但和现有流程集成更麻烦点,没有在用。

完全自动化也不是不可能,但也要和线上流量做 trade off,对业务规模来说,得不偿失。业务要完全设计成 schemaless 也不太现实。
2020-01-23 00:09:54 +08:00
回复了 wszgrcy 创建的主题 Node.js node 上的获取当前时间是调用系统的 api 吗?
你写个程序在死循环里不停取时间,然后 strace 看它用了什么 syscall 就知道了
2020-01-21 12:24:10 +08:00
回复了 feng32 创建的主题 程序员 Kubernetes Service: 集群内调用如何优先使用本地的 Pod?
service topology: https://kubernetes.io/docs/concepts/services-networking/service-topology/

在 service 的定义里加一个 topologyKeys: ["kubernetes.io/hostname"], 就会优先同 node 的 endpoint

1.17 里还是 alpha
建个新表, 把要保留的数据 select 进去, drop 老表, rename 新表
1 ... 5  6  7  8  9  10  11  12  13  14 ... 24  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2724 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 39ms · UTC 04:09 · PVG 12:09 · LAX 21:09 · JFK 00:09
Developed with CodeLauncher
♥ Do have faith in what you're doing.