uwsgi

lex和yacc 学习笔记

前一段时间在项目中要使用一个规则表达式计算的功能,而且想可以任意扩展计算功能,比如计算AUB,A和B都表示一个号码包,计算并集,当然实际使用的公式会更为复杂,这里举例说明。在计算时候要判断如果A包已经计算ok了就可以使用A包,如果没有计算成功就需要发起计算并且等待计算成功,B包也是要同样的处理过程,最后再计算并集。当然这样一个功能自己定义写肯定是没问题的,但是还要想到后面的扩展性和程序代码可移交等问题,还是想有一个通用的方法来解决,所以在最后想到了使用yacc和lex来组织解决。实际上后来发现用yacc和lex非常方便的可以解决这类问题,而且在扩展性上非常好。所以想这里先总结一下yacc和lex使用的一些语法特点和具体我们使用的方式。现在这篇中总体总结一下yacc和lex的语法特点,下一篇再写具体使用中的一些过程。

继续阅读

使用gdb和ps定位程序cpu占用问题

先使用ps获取子进程cpu占用时间,可以看出那个线程cpu占用严重

继续阅读

thrift之php客户端使用

  1. 一方面是测试使用,另一方面还想把server的一些状态和运维信息能够以web的方式展示出来,组内的web框架全是ci,我想使用django,但是组内python的人少,所以还是随大家要使用ci,用php做开发,那么就需要php也能支持使用thrift的rpc方式去访问。

继续阅读

Program received signal SIGPIPE, Broken pipe

在gdb调试程序的时候发现一个错误信息, Program received signal SIGPIPE, Broken pipe,原来是客户端程序在给服务器进行写入操作的时候,如果服务器执行了close操作,这时候根据tcp协议规定服务器要给客户端返回一个RST响应,如果client再用之前的fd往这个服务器写数据的时候,系统救护发一个SIGPIPE信号给进程,告诉进程链接已经断开。但是SIGPIPE信号的默认执行动作是terminate,所以客户端会退出,如果要想客户端不响应这个信号,则直接将其屏蔽忽略即可。

继续阅读

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,但是在测试的是后get

继续阅读

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))) &&

继续阅读

nginx模块编程学习笔记3--模块主要数据结构

在nginx模块编写种主要会涉及到下面3个数据结构,这一篇我就先来看看这3个数据结构的作用和意义。 ngx_command_t ngx_module_t ngx_http_module_t 前面这两个是定义在这个文件中:src

继续阅读

nginx模块编程学习笔记2--数据类型

在模块种出现了一些nginx特有的数据类型,这里做笔记记录一下。 nginx种数据类型:整型,字符串 src/core/ngx_config.h 种定义了这么集中比较常用的数据类型: typedef intptr_t

继续阅读

nginx+uwsgi+django/flask配置

这几天在不断的倒腾nginx的相关东西,今天测试了nginx+uwsgi+django/flask这个组合,配置启动没有问题,后面看有没有什么app可以做。另外之前做过Nginx+mod_wsgi+webpy 的配置开发,但是mod_wsgi感觉好久没有开发维护了,而且据网上说uwsgi的效率很高,倒腾一下。

nginx我这几天一直使用的nginx-1.2.0的,nginx的编译就不说了,直接./configure && make &&make install

继续阅读