Uwsgi
lex和yacc 学习笔记
前一段时间在项目中要使用一个规则表达式计算的功能,而且想可以任意扩展计算功能,比如计算AUB,A和B都表示一个号码包,计算并集,当然实际使用的公式会更为复杂,这里举例说明。在计算时候要判断如果A包已经计算ok了就可以使用A包,如果没有计算成功就需要发起计算并且等待计算成功,B包也是要同样的处理过程,最后再计算并集。当然这样一个功能自己定义写肯定是没问题的,但是还要想到后面的扩展性和程序代码可移交等问题,还是想有一个通用的方法来解决,所以在最后想到了使用yacc和lex来组织解决。实际上后来发现用yacc和lex非常方便的可以解决这类问题,而且在扩展性上非常好。所以想这里先总结一下yacc和lex使用的一些语法特点和具体我们使用的方式。现在这篇中总体总结一下yacc和lex的语法特点,下一篇再写具体使用中的一些过程。
January 20, 2018
thrift之php客户端使用
一方面是测试使用,另一方面还想把server的一些状态和运维信息能够以web的方式展示出来,组内的web框架全是ci,我想使用django,但是组内python的人少,所以还是随大家要使用ci,用php做开发,那么就需要php也能支持使用thrift的rpc方式去访问。
February 13, 2014
Program received signal SIGPIPE, Broken pipe
在gdb调试程序的时候发现一个错误信息, Program received signal SIGPIPE, Broken pipe,原来是客户端程序在给服务器进行写入操作的时候,如果服务器执行了close操作,这时候根据tcp协议规定服务器要给客户端返回一个RST响应,如果client再用之前的fd往这个服务器写数据的时候,系统救护发一个SIGPIPE信号给进程,告诉进程链接已经断开。但是SIGPIPE信号的默认执行动作是terminate,所以客户端会退出,如果要想客户端不响应这个信号,则直接将其屏蔽忽略即可。
May 21, 2013
terminate called after throwing an instance of 'stdz::logic_error'
程序编译没有问题,突然在测试的时候出了这样的问题。 terminate called after throwing an instance of ‘std::logic_error’ what(): basic_string::_S_construct NULL not valid 这个问题在我这里是因为调用了getenv,但是在测试的是后getenv的返回值是一个空值,而我没有检查就直接给string赋值。
December 4, 2012
c种内存分配错误:malloc.c:3096: sYSMALLOc: Assertion
今天在学习一个小程序的时候出现了下面的内存分配错误。 rbtest: malloc.c:3096: sYSMALLOc: Assertion `(old_top == (((mbinptr) (((char *) &((av)->bins[((1) - 1) * 2])) - __builtin_offsetof (struct malloc_chunk, fd)))) && old_size == 0) || ((unsigned long) (old_size) >= (unsigned long)((((__builtin_offsetof (struct malloc_chunk, fd_nextsize))+((2 * (sizeof(size_t))) - 1)) & ~((2 * (sizeof(size_t))) - 1))) && ((old_top)->size & 0x1) && ((unsigned long)old_end & pagemask) == 0)’ failed. Aborted
November 19, 2012
nginx模块编程学习笔记3--模块主要数据结构
在nginx模块编写种主要会涉及到下面3个数据结构,这一篇我就先来看看这3个数据结构的作用和意义。 ngx_command_t ngx_module_t ngx_http_module_t 前面这两个是定义在这个文件中:src/core/ngx_core.h
October 31, 2012
nginx模块编程学习笔记2--数据类型
在模块种出现了一些nginx特有的数据类型,这里做笔记记录一下。 nginx种数据类型:整型,字符串 src/core/ngx_config.h 种定义了这么集中比较常用的数据类型: typedef intptr_t ngx_int_t; typedef uintptr_t ngx_uint_t; typedef intptr_t ngx_flag_t;
October 31, 2012
nginx+uwsgi+django/flask配置
#2pc#php#flask#uwsgi#netfilter
这几天在不断的倒腾nginx的相关东西,今天测试了nginx+uwsgi+django/flask这个组合,配置启动没有问题,后面看有没有什么app可以做。另外之前做过Nginx+mod_wsgi+webpy 的配置开发,但是mod_wsgi感觉好久没有开发维护了,而且据网上说uwsgi的效率很高,倒腾一下。 nginx我这几天一直使用的nginx-1.2.0的,nginx的编译就不说了,直接./configure && make &&make install
October 30, 2012
nginx模块编程学习笔记1
这两天在做nginx的模块测试,想做一个可以把记录数据,以日志的形式直接写入到redis数据库中。 之前只是照猫画虎的写过nginx的模块,都是测试玩以下,这次想写个有用一点的(其实这个东西也不一定有用,先写再说)。 结果出现一个很异常的情况,也是我对nginx模块熟悉的不够,结果把filter的的模块加到处理模块的变量种–HTTP_MODULES,导致我的filter模块死活是不工作。这里整理了一下:
October 23, 2012