随手记
crookie
这个作者很懒,什么都没留下…
展开
-
使用pycallgraph分析python代码调用关系
查看项目源码时,需要理清调用关系才能更好理解其中逻辑。最近发现一个库,可以较为方便的自动生成调用关系图。原创 2024-05-23 15:39:58 · 231 阅读 · 0 评论 -
ERR_CONTENT_LENGTH_MISMATCH错误分析
grafana打不开问题分析原创 2023-02-23 18:02:59 · 561 阅读 · 0 评论 -
Choosing an HTTP Status Code
http状态码转载 2022-10-19 20:58:53 · 109 阅读 · 0 评论 -
uwsgi超时配置
uwsgi超时配置http-timeout和socket-timeout都是超时,区别:http-timeout用于直接提供http接口socket-timeout用于和nginx通过socket连接http-timeout=10socket-timeout=10当超过10s时,uwsgi会强行断开连接,但逻辑还会继续如:业务逻辑耗时过长,处理时间超过10s,此时只会断开连接,而业务逻辑不会断。如果需要在10s后就不再继续,参见harakiri参数...原创 2021-01-15 14:46:57 · 2930 阅读 · 1 评论 -
ngx.log(ngx.ERR,uri,debug.traceback())
openresty打印tracebackngx.log(ngx.ERR,uri,debug.traceback())原创 2020-08-18 14:19:02 · 1770 阅读 · 0 评论 -
使用openresty接收curl请求参数为true的问题
前段时间使用openresty网关接收请求时,总会有零星的500错误出现。查看日志发现是在参数校验的地方出错。服务的参数校验部分主要功能为判断输入的文本长度,以判断走长文本逻辑还是短文本逻辑。部分代码如下:ngx.req.read_body()local post_args ,err = ngx.req.get_post_args()ngx.log(ngx.INFO,string.format('post_args: %s',cjson.encode(post_args)))if post_args原创 2020-07-07 19:32:23 · 484 阅读 · 0 评论 -
openresty中通过capture执行子请求不通过access_by_lua阶段的解释
在openresty中,执行capture时会跳过access阶段。参加agentzh在邮件列表中的说法:ngx.location.capture() 发起的是 nginx 子请求。根据 nginx 的设计,所有的子请求(不限于 ngx_lua模块发起的子请求)都会直接跳过 access 请求处理阶段里的所有处理程序(不限于 ngx_lua 模块的 access_by_lua)。参考:[1] openresty邮件列表...原创 2020-07-04 14:49:22 · 704 阅读 · 0 评论 -
openresty获取环境变量
最近开发中,使用openresty获取环境变量时遇到一些问题,在此记录一下。默认情况下,nginx 会移除所有从父进程继承的环境变量,如果你想使用这些环境变量,需要使用该指令显示告知nginx不要移除你指定的环境变量。而且你也可以更改它们的值或创建新的环境变量。操作方法为:nginx.conf中插入配置env ENV;lua代码中调用os.getenv("ENV")注意:此方法只能拿到openresty启动时候的环境变量,在运行过程中添加或修改的环境变量是不会变化的。例如:1.启动原创 2020-06-17 16:29:11 · 1865 阅读 · 0 评论 -
uwsgi no python application found
uwsgi报错no python application found表示python程序无法启动,但uwsgi还是会启动,并占用端口。此时可能会给开发者错觉,误认为程序启动无误。加配置need-app=true加此配置后,如果报错,则uwsgi不会启动...原创 2020-04-14 18:13:51 · 521 阅读 · 0 评论 -
lightLDA dump_binary格式分析
原始注释:/** Output file format:* 1, the first 4 byte indicates the number of docs in this block* 2, the 4 * (doc_num + 1) bytes indicate the offset of reach doc* an example* 3 // there are 3 doc...原创 2020-03-12 20:59:57 · 227 阅读 · 0 评论 -
apollo配置读取方式
3种:1.通过带缓存的Http接口从Apollo读取配置2.通过不带缓存的Http接口从Apollo读取配置3.长轮询https://github.com/ctripcorp/apollo/wiki/其它语言客户端接入指南...原创 2019-08-08 16:32:17 · 2163 阅读 · 0 评论 -
Object of type 'int64' is not JSON serializable
今天,在将字典转为json串时,遇到错误Object of type ‘int64’ is not JSON serializable print(aiop)结果为[8, 8]后来发现居然是list中数字的类型不同 print(type(aiop[0])) print(type(aiop[1]))结果为<class 'numpy.int64'><class '...原创 2019-03-27 17:47:36 · 2591 阅读 · 0 评论 -
安装python包时出现找不到Python.h的解决办法
安装python-devel即可,在ubuntu平台可能名字叫做python-dev原创 2014-08-15 17:26:07 · 1792 阅读 · 0 评论 -
编程珠玑 抽样问题(蓄水池抽样)
编程珠玑抽样问题的证明原创 2015-07-22 09:38:02 · 695 阅读 · 0 评论 -
(入门)使用ab进行压力测试
最近有一个使用ab测试服务器并发量的需求,顺便鼓捣了一下ab的入门操作。发现在网上的内容有些千篇一律。在此记录下我测试的过程。我使用的ab测试命令如下ab -n 100 -c 10 -T 'application/x-www-form-urlencoded' -p postfile http://172.25.24.221:8880/project此服务使用Tornado开发,i...原创 2018-03-14 19:42:11 · 4593 阅读 · 0 评论 -
tornado使用元类(metaclass)动态生成handler
import tornado.web class baseHandler(tornado.web.RequestHandler): def render_method(self,page): self.render(page)class AHandler(baseHandler): def get(self): self.render_me...原创 2018-10-31 22:04:36 · 320 阅读 · 0 评论 -
grpc样例
proto文件syntax = "proto3";package cus_hash;service CusHash{ rpc GetCusHash(CusHashReq) returns (CusHashRes) {}}message CusHashReq{ string HashType = 1; string Sessid = 2; string HashStr = 3...原创 2019-01-21 11:13:37 · 216 阅读 · 1 评论 -
bin/ld: cannot find -ll 解决方法
近日在学习lex过程中出现了问题:>cc lex.yy.c -ll会提示bin/ld: cannot find -ll在ld时,如果提示这类无法找到的错误,一般都是缺少相应的库文件。有些可以通过安装开发包解决。但我此次并没找到其他开发包。后来google以后在一篇帖子里面找到了方法(链接为 http://forums.justlinux.com/showthread.原创 2015-01-09 10:33:33 · 1403 阅读 · 0 评论