2012年10月26日
摘要: 由于RabbitMQ是用erlang写的,这里简单介绍一下Erlang,Erlang 是由爱立信公司开发的一种平台式语言,可以说是一种自带了操作系统平台的编程语言,而且在这个平台上实现了并发机制、 进程调度、内存管理、分布式计算、网络通讯等功能,这些功能都是完全独立于用户的操作系统的,它采用的是类似于Java一样的虚拟机的方式来实现对操作系 统的独立性的。 一面是它的特点: 并发性:Erlang的轻量级进程可以支持极高的并发性,而且在高并发的情况下内存使用相当的少。Erlang的并发性并不会受到宿主操作系统并发性的限制。 分布式:最开始Erlang的设计目标就是实现分布式环境,一个Er... 阅读全文
posted @ 2012-10-26 15:38 mingaixin 阅读(544) 评论(0) 推荐(0) 编辑
  2012年10月12日
摘要: Python 代码调试技巧2012-5-3简介: Debug 对于任何开发人员都是一项非常重要的技能,它能够帮助我们准确的定位错误,发现程序中的 bug。python 提供了一系列 debug 的工具和包,可供我们选择。本文将主要阐述如何利用 python debug 相关工具进行 debug。使用 pdb 进行调试pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。表 1. pdb 常用命令命令 解释 br... 阅读全文
posted @ 2012-10-12 17:32 mingaixin 阅读(9667) 评论(0) 推荐(0) 编辑
摘要: 使用实例一,计算两个日期相差天数的计算#! /usr/local/pythonimport datetimed1 = datetime.datetime(2009,10,9)d2 = datetime.datetime(2012,10,12)a = (d2 - d1).daysprint a使用实例二: 计算程序运行的时间,以秒进行显示#! /usr/local/pythonimport datetimeimport timestarttime = datetime.datetime.now()#long runningtime.sleep(5)endtime = datetime.datet 阅读全文
posted @ 2012-10-12 15:10 mingaixin 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 能够得到struct_time的方法:>>> time.localtime() #将一个时间戳转换成一个当前时区的struct_time,如果seconds参数未输入,则以当前时间为转换标准time.struct_time(tm_year=2012, tm_mon=10, tm_mday=12, tm_hour=14, tm_min=25, tm_sec=55, tm_wday=4, tm_yday=286, tm_isdst=0)>>> >>> time.gmtime() #将一个时间戳转换成一个UTC时区(0时区)的struct_tim 阅读全文
posted @ 2012-10-12 14:54 mingaixin 阅读(279) 评论(0) 推荐(0) 编辑
摘要: #设a为字符串import timea = "2011-09-28 10:00:00"#中间过程,一般都需要将字符串转化为时间数组time.strptime(a,'%Y-%m-%d %H:%M:%S')>>time.struct_time(tm_year=2011, tm_mon=9, tm_mday=27, tm_hour=10, tm_min=50, tm_sec=0, tm_wday=1, tm_yday=270, tm_isdst=-1)#将"2011-09-28 10:00:00"转化为时间戳time.mktime( 阅读全文
posted @ 2012-10-12 14:00 mingaixin 阅读(1256) 评论(0) 推荐(0) 编辑
摘要: 一般情况下,一些程序的调试过程中我们会让它输出一些信息,特别是一些大型的程序,我们通过这些信息可以了解程序的运行情况,python提供了一个日志模块logging,它可以把我们想要的信息全部保存到一个日志文件中,方面我们查看。最近做的项目,有一些业务处理逻辑是先将数据写入队列,然后通过python读取队列中的内容,继续处理后续的逻辑。因为队列消费一次就没了,所以做好日志记录格外重要;test_log1.py#! /usr/bin/pythonimport loggingLOG_FILENAME="log_test.txt"logging.basicConfig(filena 阅读全文
posted @ 2012-10-12 11:53 mingaixin 阅读(9097) 评论(0) 推荐(0) 编辑
摘要: 模板字符串:string模板提供另外一种格式化值的方法:模板字符串。它的工作方式类似于很多Unix Shell里的变量替换。>>> from string import Template>>> s = Template('$X. glorious $X!') >>> s.substitute(X='slurm') 'slurm. glorious slurm!'如果替换字段是单词的一部分,那么参数名就必须用括号括起来,从而精确指明结尾:>>> s = Template(&qu 阅读全文
posted @ 2012-10-12 10:41 mingaixin 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 1、基础字符串操作所有标准的序列操作(索引,[:],*,in,not in ,len,min,max,sorted,reversed,zip,sum,enumerate)对于字符串同样适用。但是字符串都是不可变的。因此,类似以下分片赋值是不合法的:>>> website="www.letv.com">>> print website[3].>>> website[3]='b'Traceback (most recent call last): File "<stdin>", 阅读全文
posted @ 2012-10-12 10:36 mingaixin 阅读(22817) 评论(0) 推荐(0) 编辑
  2012年10月11日
摘要: #! /bin/bash# author caoxin# time 2012-10-10 # program : 判断进行是否存在,并重新启动function check(){ count=`ps -ef |grep $1 |grep -v "grep" |wc -l` #echo $count if [ 0 == $count ];then nohup python /runscript/working/$1 & fi}check behaviors.py参考的网址为: http://blog.csdn.net/shangpusp/arti... 阅读全文
posted @ 2012-10-11 11:25 mingaixin 阅读(15523) 评论(0) 推荐(1) 编辑
  2012年9月25日
摘要: 今天遇到一个错误:UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3搜索网上找到一个解决办法(转载自 http://blog.sina.com.cn/s/blog_727b603701019pyl.html)异常: 'ascii' codec can't encode characters字符集的问题,在文件前加两句话:reload(sys)sys.setdefaultencoding( "utf-8" )完美解决,ok另外 当字符 阅读全文
posted @ 2012-09-25 15:08 mingaixin 阅读(22874) 评论(0) 推荐(0) 编辑