波斯马BOSSMA Information Technology

2021年 发布的所有日志

树莓派使用Golang+MQ135检测室内空气质量

发布时间:2021年9月5日 / 分类:树莓派 / 抢沙发

MQ135是一个比较便宜的空气质量传感器,可以用在家庭以及工业场所中。树莓派是一个小巧但很强大的卡片电脑,基于Linux,同时提供了很多硬件接口,方便开发出各种电子产品。Golang是一款简单高效的语言,编译结果为native代码,无需提前安装运行环境和虚拟机。 关于MQ13...

Golang在Linux系统中实现微秒级延迟

发布时间:2021年8月25日 / 分类:Go / 抢沙发

在程序中延迟或者等待一段时间一般可以使用Sleep函数实现,但是因为操作系统线程调度的消耗,往往只能做到十几或者数十毫秒的精度,很难达到微秒级,Golang的time.Sleep也是如此。 Sleep函数一般都会将当前线程从CPU让出,然后等待操作系统的重新调度,这样可以有效利用CPU...

修改Github中提交人的名字

发布时间:2021年8月3日 / 分类:Tools / 抢沙发

不小心在本地使用了别的名字做了git提交,并push到了Github,这个名字和Github帐号的名字不同,导致贡献没有被统计到。这里提供一个方法来进行修改,一共两个步骤。 1、在仓库目录执行名字替换命令 git filter-branch -f --env-filter ' OLD_EMAIL="bossma@y...

ASP.NET Core中使用令牌桶限流

发布时间:2021年4月14日 / 分类:ASP.NET, DOTNET / 抢沙发

在限流时一般会限制每秒或每分钟的请求数,简单点一般会采用计数器算法,这种算法实现相对简单,也很高效,但是无法应对瞬时的突发流量。 比如限流每秒100次请求,绝大多数的时间里都不会超过这个数,但是偶尔某一秒钟会达到120次请求,接着很快又会恢复正常,假设这种突发...

Lazy(Func)的异常缓存问题

发布时间:2021年4月12日 / 分类:DOTNET / 抢沙发

Lazy可以提供多线程环境下的安全保障,但是用不好也是会跳到坑里。 我这里使用Lazy<t>(Func<T>)来创建一个Lazy实例,然后在需要的地方访问它的Value属性,它可以保证在多线程环境下Func<T>仅执行一次,这看起来十分的美好:需要的时候执行,并且仅执行一次,再翻...

Windows系统中Jenkins流水线拉取代码鉴权失败的问题

发布时间:2021年2月26日 / 分类:ALL, Devops / 抢沙发

鉴权失败有很多原因,这里只是其中一个很特殊的情况,原因是控制台字符编码问题。 1、现象 在流水线中使用checkout拉取,例如: checkout([$class: 'GitSCM', branches: [[name: '*/master']], doGenerateSubmoduleConfigurations: false, exten...

Windows环境下Jenkins流水线中控制台输出中文乱码问题解决方案

发布时间:2021年2月26日 / 分类:Devops / 抢沙发

这里系统环境: Windows Server 2012 R2 64位 中文版Jenkins 2.263.4 经过实际测试,通过两个操作,可以正常输出中文。 1、修改Jenkins启动参数,添加参数:-Dfile.encoding=utf-8 <arguments>-Xrs -Xmx256m -Dfile.encoding=utf-8 -Dhudson.lifecycle=hu...

Gogs Webhook触发Jenkins构建时传递参数

发布时间:2021年2月22日 / 分类:Devops / 抢沙发

可能是基于安全性考虑,使用如下格式的Url时不能传递参数: http://{IP}:{PORT}/gogs-webhook/?job=test 经测试可以使用如下格式的Url: http://{IP}:{PORT}/job/{任务名称}/buildWithParameters?token={Token值}&Para1={参数1的值}&Para12={参数2的值} ...

Windows环境Jenkins关掉跨站攻击检查

发布时间:2021年2月22日 / 分类:Devops, JAVA / 抢沙发

通过Gogs Webhook调用如下URL构建任务时返回403错误,及” No valid crumb was included in the request “。 http://IP:Port/job/test/buildWithParameters?token=XXX 找到一个简单粗暴的处理方式。 1、找到Jenkins安装目录:C:\Program Files\Jenkins ...

ASP.NET Core中如何对不同类型的用户进行区别限流

发布时间:2021年2月19日 / 分类:DOTNET / 抢沙发

老板提出了一个新需求,从某某天起,免费用户每天只能查询100次,收费用户100W次。 这是一个限流问题,聪明的你也一定想到了如何去做:记录用户每一天的查询次数,然后根据当前用户的类型使用不同的数字做比较,超过指定的数字就返回错误。 嗯,原理就是这么简单。不过...