- 博客(13)
- 收藏
- 关注
转载 simple_server了解和使用
httpd = WSGIServer((addr, port), WSGIRequestHandler)httpd.set_app(wsgi_handler)httpd.serve_forever()使用simple_server时,在初始化WSGIServer时需要给出元组形式的地址和端口号,WSGIRequestHandler处理request。然后使用set_app将具体处理reque...
2018-03-27 19:29:30 2033
原创 django处理客户端请求过程
有前面分析知道,当客户端发送http请求时,django处理函数如下: def __call__(self, environ, start_response): set_script_prefix(get_script_name(environ)) signals.request_started.send(sender=self.__class__, environ...
2018-03-27 19:28:53 969
转载 正则表达式
处理字符串的方法,以行为单位,达到“搜索/删除/取代"特定字符串的功能。 *:0到任意多的字符 #:符合取代文字的最短的那一个(path#/*:)(从前面删除) ##:符合取代文字的删除最长的那个 %、%%: (path%:*bin)(从后面删除)变量内容删除与取代变量的测试与内容替换...
2018-03-27 19:27:52 133
转载 core dump简介及如何使用
基本概念 当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其他处理器和操作系统状态和信息。core du...
2018-03-27 19:27:27 975
转载 zookeeper C 客户端分析
每个zookeeper API必须有一个zhandle。当初始化一个zhandle时(zookeeper_init)首先初始化zhandle的相应字段然后创建两个线程:do_io,do_completion;并且等待这两个线程初始化完成后才返回,这两个线程也要等待彼此初始化完成后,才提供服务(notify_thread_ready)。1 IO线程/do_io显然这个线程用于处理io请求(使用Pol...
2018-03-27 19:20:54 416
原创 基于zookeeper C客户端了解hashtable
实现一个哈希表,该哈希表将键映射到相应的值。任何非 null 对象都可以用作键或值。为了成功地在哈希表中存储和获取对象,用作键的对象必须实现 hashCode 方法和 equals 方法。Hashtable 的实例有两个参数影响其性能:初始容量(容量是桶的数量,初始容量就是哈希表创建时的容量。) 和加载因子(是对哈希表在其容量自动增加之前可以达到多满的一个尺度。)。大多数 Hashtable 操作...
2018-03-27 19:18:46 196
原创 zookeeper C客户端主要数据结构分析
struct _zhandle { int fd; /* the descriptor used to talk to zookeeper */ 与服务器连接的socket fd char *hostname; /* the hostname of zookeeper */主机名 struct sockaddr_storage *addrs; /* the addresses...
2018-03-27 19:17:26 296
原创 zookeeper C客户端 do_io线程
void *do_io(void *v){ zhandle_t *zh = (zhandle_t*)v; fd_set rfds, wfds, efds; struct adaptor_threads *adaptor_threads = zh->adaptor_priv; api_prolog(zh); notify_thread_ready(zh);//通知...
2018-03-27 19:16:32 492
原创 syslog-ng启动过程源码分析
入口:/syslog-ng/main.c参数解析部分使用glib库作支持,底层循环使用eventfd、eventpoll实现。初始化完成后,启动线程池分散收到大量日志时的处理过程,以提高工作效率。intmain(int argc, char *argv[]){ gint rc; GOptionContext *ctx;//进行参数解析 GError *error = NULL; MainL...
2018-03-27 19:15:31 1157
转载 结合syslog-ng分析syslog标准协议的结构和处理过程
Syslog包主要分为3个部分,PRI, HEADER,以及MSG,一般总长度不超过1024个字节。其中PRI部分记录了facility和level(severity)的值,使用<>扩起来,计算公式为facility*8+level;syslog-ng中会使用<>在行首进行过滤,其中facility有:level有:HEADER部分记录的时间和主机相关信息,格式为 Mmm ...
2018-03-27 19:05:09 644
原创 Django10命令runserver详解
接着上一篇,现在我们从runserver.Command()中的self.handle方法开始讲起。handle方法经过参数获取和检查之后,进入run方法,该方法允许使用autoreload或者普通方式允许inner_run方法。由于使用python开发后台服务程序的时候,每次修改代码之后都需要重启服务才能生效比较麻烦,所以Django有自己的自动加载模块功能(autoreload.p
2016-12-07 10:07:51 5845
原创 django1.10框架了解
记录一下django的启动过程,通常在开发阶段使用./manage.py subcommand options启动项目。import osimport sysif __name__ == "__main__": os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project_demo.settings") try:
2016-11-30 16:36:26 1537
原创 Test Library Requirement
1. 用户管理1.1用户登录1.1.1用户登录界面包含用户名输入框和密码输入框,登录按钮,注册按钮,找回密码链接1.1.1.1 正确输入用户名密码,点击登录按钮,可成功登录进入系统主页1.1.1.2 用户名和密码不匹配,则提示相应的错误信息1.1.1.3用户连续输入错误密码5次以上,则该用户被锁定10分钟后才能重新登录1.1.1.4用户忘记密码时,点击找回密码链接,通过邮箱
2015-04-03 09:02:53 393
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人