golang格式化输出

packagemainimport"fmt"import"os"typepointstruct{x,yint}funcmain(){//Go为常规Go值的格式化设计提供了多种打印方式。例如,这里打印了point结构体的一个实例。p:=point{1,2}fmt.Printf("%v\n",p)//{12}//如果值是一个结构体,%+v的格式化输出内容将包括结构体的字段名。fmt.Printf("%+v\n",p)//{x:1y:2}//%#v形式则输出这个值的Go语法表示。例如,值的运行源代码片段。fmt.Printf(&q[...]

继续阅读 »

从Protocol Buffers 到 gRPC

从ProtocolBuffers到gRPChttps://www.jianshu.com/p/6c9f90538efe从ProtocolBuffers到gRPC标签:ProtoBufgRPCHTTP/2我们项目中准备使用ProtocolBuffers来进行服务器和客户端的消息交互,采用gRPC开源框架,服务器使用Java,客户端有Android和iOS。[TOC]一、Protocol[...]

继续阅读 »

如何执行win7系统cmd关机命令

使用shutdown命令shutdown-l注销shutdown-s关机shutdown-r重启shutdown-h休眠shutdown-a取消系统关闭shutdown-f强制关闭正在运行的程序shutdown-t设置倒计时(按秒计算)默认为30用法:如定时关机,一小时后关机shutdown-s-t3600(注销-l和-t同时使用,-t无效)定时重启一分钟后重启shutdown-r-t60如设置了定时关机,想取消shutdown-a更多参数可以在CMD输入shutdown/?查询[...]

继续阅读 »

Ansible进阶优化技巧

简介Ansible是一个系统自动化工具,可以用来做系统配管理,批量对远程主机执行操作指令。我自己使用Ansible也有一段时间了,这里总结了一些使用Ansible过程中使用的心得与大家分享。Ansible性能优化在使用Ansible的过程中,当管理的服务器数量增加时,不得不面对一个无法避免的问题执行效率慢,这里列出一些解决办法。优化前的准备—收集数据在做性能优化之前首先需要做的是收集一些统计数据,这样才能为后面做的性能优化提供数据支持,对比优化前后的结果。非常不错的是,在github发现一个Ansible任务计时插件“ansible-profile”,安装这个插件后会显示ansible-[...]

继续阅读 »

Golang热更新

1、什么是热更新网络上有这么一个例子来形容热更新,我觉得很形象很贴切:一架行驶在高速上的大卡车,行驶过程中突然遭遇爆胎,热更新则是要求在不停车的情况下将车胎修补好,且补胎过程中卡车需要保持正常行驶。软件的热更新就是指在保持系统正常运行的情况下对系统进行更新升级。常见的情况有:系统服务升级、修复现有逻辑、服务配置更新等。2、热更新原理先来看下Nginx热更新是如何做的?Nginx支持运行中接收信号,方便开发者控制进程。1)首先备份原有的Nginx二进制文件,并用新编译好的Nginx二进制文件替换旧的2)然后向master[...]

继续阅读 »

golang 中 new 和 make 区别

golang中有两个内存分配机制:new和make,二者有明显区别.new:用来初始化一个对象,并且返回该对象的首地址.其自身是一个指针.可用于初始化任何类型make:返回一个初始化的实例,返回的是一个实例,而不是指针,其只能用来初始化:slice,map和channel三种类型packagemainimport("fmt")funcmain(){a:=new([]int)fmt.Println(a)    //输出&[],a本身是一个地址b:=make([]int,1)fmt.Println(b)    //输出[0],b本身是一个sli[...]

继续阅读 »

python中subprocess.Popen执行命令并持续获取返回值

先举一个Android查询连接设备的命令来看看Python中subprocess.Popen怎么样的写法。用到的命令为adbdevices。  importsubprocess  order=‘adbdevices’#获取连接设备  pi=subprocess.Popen(order,shell=True,stdout=subprocess.PIPE)  printpi.stdout.read()#打印结果命令的结果返回是一次性的,所以我们用read方法读取数据是没有问题的,然而adb命令里还有一些是实时返回结果的,比如输出手机日志的命令logcat,结果会不断的打印出来当前的设备操作日志信息内容,这种类型的命令我们在Python中如果需要获取打印结果,如[...]

继续阅读 »

Mysql 事务探索及其在 Django 中的实践

  继上一篇《Mysql事务探索及其在Django中的实践(一)》交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升。  首先贴上Django官方文档中关于DatabaseTransaction一章的介绍:https://docs.djangoproject.com/en/1.9/topics/db/transactions/。  在Django中实现事务主要有两种方式:第一种是基于djangoORM框架的事务处理,第二种是基于原生地执行SQL语句的transa[...]

继续阅读 »

Python编程reload热更新代码

本例子使用python3新建两个文件:a.pyprint("a...")b.pyimportaimporttimefromimportlibimportreloadwhileTrue:time.sleep(5)reload(a)现在,我们启动b.py文件,输出如下a....a....a....a....修改a.py文件,不用重启b.py文件<[...]

继续阅读 »