自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 收藏
  • 关注

原创 使用 buildx 构建多种系统架构支持的 Docker 镜像

Linux下使用docker buildx 命令构建多种系统架构支持的 Docker 镜像

2021-11-20 19:10:42 9270 1

原创 解决ThinkPHP5 Redis::delete() is deprecated

解决ThinkPHP5 Redis::delete() is deprecated

2021-11-17 22:59:24 2993 1

原创 tp5框架实现推送消息到企业微信机器人(从需求分析、方案设计、研发阐述)

需求目前需要接入消息推送的模块是任务中心,原因是任务中心是多人协作处理某个特定小组内的所有分析任务,在整个分析的过程中,一个任务的生命周期会经历若干个关键的状态节点,当分析师或审批人触发了相关动作,去改变当前任务的状态转移到特定的新状态时,需要业务层生成一条消息发送到企业微信群内,通知相关责任人第一时间关注这个任务的状态信息。从而分析师或审批人能在第一时间内,看到消息后,去wxqb的业务系统做进一步的后续处理。前期调研一、怎么在业务层代码实现推送消息到企业微信?1.首先你得有个机器人

2021-06-06 15:32:52 1565

原创 浅析web api的json参数校验

前言以前api接口大家用得比较多的是表单方式传值,现在越来越流行使用json参数类型。正文下面从php、golang两个语言在json的使用上做一些说明。php的处理json的两个方法名叫:json_encode 数组转换为json字符串json_decode json字符串转换为数组或对象golang官方包,Package json支持若干json的方法;json.Marshaljson.UnmarshalMarshal:名称:元帅动词:整理、排列...

2021-06-06 13:56:16 911 1

原创 源码探究thinkphp5框架的session更新过期时间的机制

背景最近上线了一个网站,后端api使用的框架是thinkPHP5,网站的登陆是cookie、session机制,session的存储介质是redis,设置的是30min过期。偶尔有用户反馈还没到半小时,为啥session就过期,需要他重新登陆。emmm,客户的表达,其实是用户从自身的时间感知层面说了一个现象。但是问题就在于每个人在不同的精神状态下对时间的感知是有差别的,典型的例子是,人在进入心流状态后,会觉得时间过得很快。那么,我们怎么证明thinkPHP5框架对于session的操作是

2021-05-06 18:24:30 1637

原创 php使用minio作为文件服务器

背景:最近,手头一个php的项目需要迭代文件的上传、下载等功能,打算使用minio作为文件服务。网上搜索minio的相关资料,关于php的示例相对较少、零散。遂写下这篇文章,作为自己对minio使用的记录,主要涵盖php对minio的交互使用,诸如:上传、下载、创建桶。同时,也希望这篇文章对你有所帮助。实践:minio是什么?官方定义,MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图

2021-03-25 15:43:19 4993 1

原创 golang通过协程、通道实现并发按特定顺序打印字符串

背景:看到这样一个golang的面试题,大致是:有三个函数分别打印,“dog”,“cat”,“fish”,要求每个函数起一个goroutine,请按照dog,cat,fish的顺序,打印四次,输出到控制台。怎么做:其实这道题,就是在考察两点:1.goroutine和channel的配合,使用来控制多个协程的执行顺序;2.如何控制协程执行的次数;package mainimport ( "fmt" "sync")func main(){ wg:=sync.Wa

2021-03-22 23:11:37 2068

原创 记一次gitlab代码仓库迁移

背景一个维护了将近三年的php项目,最近需要交给工程组的同事维护,需要把我们成都内网的gitlab仓库的一些项目同步一份到武汉gitlab仓库。可能后续,还会再次同步更新。(成都仓库可能发生新的commit,需要把最新的变动同步到武汉仓库)所以,这里就需要用到git clone --mirror old.git的相关命令,来完成代码仓库的镜像同步操作。最终的效果是,迁移后的仓库内容是包含了现有分支的所有commit、merge等分支上的变动历史记录!这些记录就是这些代码的前世今生!下面正文部

2021-03-02 14:45:21 3151

原创 记一次线上数据库迁移脚本执行报错的处理经过

背景收假后上班的第一天,接到产品的通知需要把年前迭代的若干功能发布到线上。(研发只需要管CI流程,把近期迭代的rb-1.0.13合并到master后,触发jenkins构建后端镜像的任务,查看harbor仓库是否已经包含最近镜像!)运维同事发布后,上线确认一下migrate迁移脚本的执行正确性:emmm,报错了,没道理嘛!看了一下线上的mysql容器里的db的s9_table表,发现已经存在task_id字段,且已经有935条记录的task_id字段不为null。。。打算看一下这个迁移脚

2021-02-20 18:02:18 216

原创 如何自定义修改dockerhub官方redis镜像的redis.conf的默认配置

背景今天朋友请教了我一个关于redis自定义配置的问题,他使用的是dockerhub官方redis镜像,运行命令如下:docker run -p 6379:6379 --name redis -v /data/redis/redis.conf:/etc/redis/redis.conf -v /data/redis/data:/data -v /data/redis/log/redis-server.log:ar/log/redis/redis-server.log -d redis redis-

2021-01-14 14:49:48 2569 2

原创 php、go项目开发的时区问题

背景今天脑子里突然冒出一个疑问,前段时间做golang的web项目,框架是iris,测试环境是docker,发现官方的golang的docker容器里面的时区是UTC时区和北京时间相差8h,后面貌似是:$ docker run -d \-e "TZ=Asia/Shanghai" \...即运行容器时,指定容器内的时区信息!解决了该问题!网上搜索全局设置golang 的时区信息,给出的方式是:通过自定义一个tzinit,时区初始化包,来实现时区的全局设置,init会在被其他包import时

2020-12-10 15:42:23 264

原创 golang 实现类似in_array的功能

前言php里面有个函数叫in_array(search,arr),用来判断某个值是否存在特定一维索引数组中。golang如何实现?正文因为golang是强类型语言,所以真的要覆盖参数是多类型的in_array,代码就有点多,毕竟现在1.15的版本还没支持泛型。但是web开发,元素一般都是字符串的判断。下面以元素为字符串类型进行举例,实现类似in_array的效果,实际上是没有遍历整个数组,而是使用map通过key来查找,达到以空间换时间的目的!上代码:

2020-11-30 16:54:40 5631

原创 es 多字段聚合 in golang

前言es中如何实现多字段聚合统计?类似于mysql的:select a,b from my_table grroup by a,b;golang如何借助第三方类oliver elastic实现es原生DSL(domain special language 特殊领域查询语言)的构造?正文先来看单字段聚合统计的es原生DSL语句的写法:{ "query": { "bool": { "must": [ { "query_stri

2020-11-30 11:36:57 3709

原创 jenkins自动化持续构建,导致镜像越来越大?

背景最近,发现jenkins服务器,构建前端镜像越来越慢,与之前对比大概构建一次慢了将近10min,是什么原因导致镜像的CI/CD越来越慢呢?解决进入jenkins的web管理界面,查看构建日志,发现关键的时间消耗竟然是,脚本中把镜像上传到私有化镜像仓库。那么,在不考虑上传的网速问题的情况下,影响上传速度的原因只会是上传文件本身很大!然后在发布到阿里云时,从私有化仓库拉取下来的前端镜像怎么越来越大,大约2.6G,而在这之前前端镜像大概只有一百多M;这差别也太大了一点。然后,开始思

2020-11-17 11:21:07 818

原创 前端框架UMI构建nginx镜像和开发环境的前端效果不一样

前言前端使用UMI框架开发,基于jenkins+gitlab+docker自动化构建出来的nginx镜像,在服务器上的展示的前端页面效果总和前端同事的本地开发环境不一致,但是yarn是没有报错的。解决方式之所以jenkins构建出来的前端镜像在服务器上运行的页面效果跟前端同事开发环境不一致,是因为在执行yarn之前,自动化构建的工作区里面的前端文件不是完整的UMI的代码。为啥?因为对linux的cp命令的细节点的认知不够。通常拷贝某个目录下的文件到另外一个目录,想到的命令一般是递归复制,

2020-11-17 10:49:35 697

原创 CR 与 LF 换行符

前言你是否知道不同操作系统,诸如:windows系列、unix系列的换行符(回车)的差异?你是否在使用git时,配置过core.autocrlf参数?换行符的差异对你项目开发的有什么影响?接下来,以工作中采坑的一个列子,来回答上述三个问题。背景开发环境说明:windows+virtualbox虚拟机+虚拟机里面运行的ubuntu+ubuntu里面装的docker,编辑代码是直接在windows上使用phpstorm编辑,代码目录被挂载到了虚拟机的共享目录上,从而实现了类似文件自动

2020-11-12 10:40:31 614

原创 gitflow的规范

背景:总结一下在项目开发下,目前自己接触到的两种gitflow规范。老版本gitflow流程:master 分支是用于线上生产环境和预环境develop 分支是开发分支,用于qa测试环境,新功能的开发以及bug的修复分支,都是已改分支作为起始点feature,bug分支从分支命名上,没有按照feature/xxx,bug/xxx命名,而是以jira问题号命名,示例:section-1324_fix_bug_xxx,section-1299_feature_xxxfeature,...

2020-11-11 18:11:52 636

原创 docker image 的sha256 digest摘要

docker image 的sha256 digest摘要sha256 digest摘要信息到底是用来干啥的?

2020-11-11 17:48:11 16304

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除