- 博客(34)
- 收藏
- 关注
转载 分布式事务
https://blog.csdn.net/bjweimengshu/article/details/79607522?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.nonecase
2020-09-16 15:18:44
203
原创 使用CI/CD作为测试准入准出手段
1.开发邮件提测后,手动触发jenkins在测试环境部署,跑测试用例,将结果发送邮件,作为测试准入手段。2.发布到pre-online环境后,自动触发jenkins跑测试用例,将结果发送邮件,作为测试准出手段。...
2020-08-13 18:18:14
503
原创 线上压测时,业务侧常见改造方案
1.压测平台的请求带压测标识,与真实用户请求区分开,将压测请求路由到指定实例及中间件,减少对线上业务的影响,隔离实例,以便更快恢复。2.两地机房的话,先将机房A的真实线上流量全部切到机房B,压完后,再切回来。...
2020-08-13 15:49:53
228
原创 同步调用、异步调用、回调函数、钩子函数
同步调用、异步调用、回调函数同步调用是一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用;回调是一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口;异步调用是一种类似消息或事件的机制,不过它的调用方向刚好相反,接口的服务在收到某种讯息或发生某种事件时,会主动通知客户方(即调用客户方的接口)。回调和异步调用的关系非常紧密,通常我们使用回调来实现异步消息的注册,通过异步调用来实现消息的通知。同步调用是三者当中最简单的,而回调又常常是异步调用的基础。钩子函.
2020-07-16 15:22:57
444
原创 持续集成的实践心得
jenkins:1.自由风格job:只是跑测试用例。2.流水线job:多个节点构建部署测试一条龙。流程:1.stages里面有各个stage,各个stage里面有agent和steps,agent决定在哪台主机运行,脚本都在steps里面2.testng默认生成的是xml文件,要使用html publisher插件才可以转成html格式,进而在jenkins中可视化报告3.post定义Pipeline或stage运行结束时的操作。post-condition块支持post部件:always,.
2020-07-16 14:41:34
301
原创 shell脚本的编写
文件开头:#!/bin/bash$0文件名$1,$2参数1,参数2$#传递给脚本或函数的参数个数$$当前Shell进程ID-eq 等于-ne 不等于exit 0 退出,并返回0exit 1 退出,并返回1$var和${var}区别如:当你要显示变量值加随意的字符时echo $var_AA 会将后面的_AA也当做变量的一部分echo ${var}_AA 不会将后面的_AA当作变量...
2020-07-16 14:39:21
233
原创 mysql知识点总结
1.数据库视图概念,优缺点视图(子查询):是从一个或多个表导出的虚拟的表,它不存储数据。优点:①简化了操作。②安全性。我们可以将基本表中重要的字段信息,可以不通过视图给用户。缺点:①性能差。数据库必须把视图查询转化成对基本表的查询,需要花费一定的时间。②修改限制。单表视图的修改,会改变基本表的数据;多表视图的修改,不会改变基本表的数据。2.MyISAM与InnoDB 的区别1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自
2020-07-13 19:22:18
225
转载 云服务器相比传统的服务器优势
云服务器相比传统的服务器优势主要体现在了以下几点:1.敏捷性:部署一台云服务器,最慢的腾dao讯云也只要十分钟以内,但是如果使用物理服务器呢,采购?放到机房,要知道时间才是最大的成本。2.灵活扩展:做过架构师的大家肯定都知道,估算使用量是一件非常不靠谱的事,如果用物理服务器,用量估算多了,这是白花钱;估算少了,不够用,网站慢,被领导骂死...但是云服务器的话,可以轻松的进行扩展,想用多少用多少,完全不用前期估算用量3.运维:当前最贵的资源是什么?是人才,人力成本对每家企业来说都是不可忽视的一笔支出,使
2020-07-09 16:05:40
336
转载 直接赋值、浅拷贝和深度拷贝
直接赋值:其实就是对象的引用(别名)。 浅拷贝(copy):拷贝父对象,不会拷贝对象的内部的子对象。 深拷贝(deepcopy):copy 模块的 deepcopy 方法,完全拷贝了父对象及其子对象。 解析1、b = a:赋值引用,a 和 b 都指向同一个对象。2、b = a.copy():浅拷贝, a 和 b 是一个独立的对象,但他们的子对象还是指向统一对象(是引用)。b = copy.deepcopy(a):深度拷贝, a 和 b 完全拷贝了父对象...
2020-06-09 16:54:53
222
原创 数据库同步过程与冲突详解
A.数据库同步过程1.python manage.py makemigrations每次使用makemigrations后就会在对应app/makemigrations目录下生成类似下面这样的迁移脚本:迁移脚本内容大致是由两部分组成,依赖列表、操作列表。2.python manage.py migratemigrate命令会在django_migrations表中插入迁移记录,然后执行sql语句。B.冲突解决办法原因:执行migrate命令会报错的原因是,..
2020-06-08 19:54:18
993
转载 命名空间与作用域
1.命名空间【定义】 它是存储作用域中变量的字典。一个命名空间中不能有重名,但是不同的命名空间可以重名而没有任何影响。【分类】 按照变量定义的位置,可以划分为以下3类: Local,局部命名空间,记录了函数中定义的所有变量,包括函数的入参、内部定义的局部变量。使用locals()查看局部命名空间。 Global,全局命名空间,记录了每个被加载模块中定义的变量,包括模块中定义的函数、类、其他导入的模块、模块级的变量与常量。使用globals()查看全局命名...
2020-06-05 17:34:46
2209
原创 实例方法、类方法、静态方法的区别
Python中至少有三种比较常见的方法类型,即实例方法,类方法、静态方法。1.实例方法定义:第一个参数是“self”,通过它可以使用实例的属性和方法,也可以使用类的属性和方法调用:只能由实例对象调用2.类方法定义:使用装饰器@classmethod。第一个参数是“cls”,通过它可以使用类的属性和方法,但不能传实例的属性和方法调用:类对象或实例对象都可以调用3.静态方法定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,方法体中..
2020-06-05 16:24:41
3436
原创 存储过程、函数、触发器
1.存储过程和函数的区别1)存储过程是用户定义的SQL语句序列的集合。函数通常不涉及特定的用户表。2)一个函数只能返回一个变量;一个存储过程可以返回多个。3)存储过程的参数可以有IN,OUT,INOUT三种类型,而函数只能有IN类4)存储过程声明不需要返回类型,函数声明需要描述返回类型,而函数体必须包含有效的RETURN语句。5)在SQL语句中存储过程不可用,但可以使用函数。存储过程示例:mysql> delimiter $$ #将语句的结束符号从分号;临时改为两个$$
2020-06-04 16:35:14
784
原创 什么是事务
1. 什么是事务?事务是一系列的sql操作,要么全部成功,要么全部失败。他们符合ACID特性。2.事务处理语句1、begin,rollback,commitbegin;/start transaction; 开始事务rollback; 回滚事务(撤销所有未提交的事务)commit; 提交事务**2、改变mysql的提交模式set autocommit=0; 禁止自动提交set autocommit=1; 开启自动提交3、保存点savepoint s1; 设置自动保存点s1
2020-06-04 14:10:06
458
原创 索引
1. 什么是索引?索引是一种数据结构,可以帮助我们快速地进行数据的查找。2.索引有什么优缺点?索引的优点有:可以大大加快数据的索引速度索引的缺点有:索引需要占物理空间,除了数据表占用数据空间之外,每一个索引还要占用一定的物理空间 对表中的数据进行增、删、改的时候,索引也要维护,耗费时间,且时间随着数据量的增加而增加3.索引的数据结构和什么有关?索引的数据结构和具体存储引擎的实现有关;我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引。4.MySQL主要的索引类型
2020-06-04 13:58:26
671
原创 面向对象编程
class Student(object): def __init__(self, name, score): self.name = name self.score = score def print_score(self): print('%s: %s' % (self.name, self.score))>>> bart = Student('Bart Simpson', 59)>>> b.
2020-06-03 16:24:47
211
原创 os模块与sys模块
os模块提供了程序与操作系统的交互接口; sys模块提供了程序与python解释器的交互接口,用于操控python的运行时环境。os常用方法:os.remove(path)删除文件os.rename(src,dst)重命名文件os.walk(path)生成目录树下的所有文件名os.chdir(path)改变目录os.mkdir(path)/makedirs(path)创建目录/多层目录os.rmdir(path)/removedirs(path)删除目录/多层目录os.lis.
2020-06-03 15:34:03
226
转载 设计模式六大原则
1.单一原则(Single Responsibility Principle):一个类或者一个方法只负责一项职责,尽量做到类的只有一个行为原因引起变化; a、业务对象(BO business object)、业务逻辑(BL business logic)拆分;2.里氏替换原则(LSP liskov substitution principle):子类可以扩展父类的功能,但不能改变原有父类的功能;(本质其实就是c++的多态) (目的:增强程序的健壮性)实际项目中,每个子类对应不同的业务含义,使
2020-06-03 14:38:11
158
原创 正则表达式
建议参考这篇博客:https://www.cnblogs.com/Anesthesia-is/articles/11503398.html正则语法:
2020-06-03 11:45:52
209
原创 文件读写
1.读1.获取读文件句柄>>> f = open('test.txt','r') # 若是'rb'就表示读二进制文件如果文件不存在,open()函数就会抛出一个IOError的错误:>>> f=open('test.txt','r')Traceback (most recent call last):File"<stdin>", line 1,in<module>FileNotFoundError: [Err...
2020-06-03 11:19:48
344
原创 内存管理机制
从三个方面来说:一、对象的引用计数机制Python内部使用引用计数,来保持追踪内存中的对象,所有对象都有引用计数。引用计数增加的情况: 1,一个对象分配一个新名称 2,将其放入一个容器中(如列表、元组或字典)引用计数减少的情况: 1,使用del语句对对象别名显示的销毁 2,引用超出作用域多数情况下,引用计数比你猜测得要大得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。二、垃圾回收机制1,当一个对象的引用计数归零时,它将被垃圾收集机制处理掉。
2020-06-02 13:56:12
137
原创 生成器/迭代器/装饰器
迭代器这里,首先要清楚可迭代对象和迭代器的区别。定义可迭代对象,必须实现__iter__方法;定义迭代器,必须实现__iter__和next方法,即实现迭代器协议。因此,迭代器一定是可迭代对象。可迭代对象通过使用iter()方法可以变成迭代器对象 print(isinstance(iter([]),Iterator))# 列表 True 可迭代对象可以直接用for循环遍历,比如以下2种:一类是集合数据类型,如list、tuple、dict...
2020-06-02 11:56:25
346
原创 python数据类型
在python中数据类型有6类:数字(又分为:int/long/float/complex),字符串,元组,集合,列表,字典。共9种。int long(可以代表八进制和十六进制]) float complex 10 51924361L 0.0 3.14j 100 -0x19323L 15.20 45.j -786 0122L -21.9 9.322e-36j 080 0xDEFABCECBDAECBFBAEl
2020-06-02 10:57:38
305
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人