这道题和力扣24题类似,假设本题中的k=2
时的情况就是24题了, 解题思路和24题类似。
leetcode 24
Docker使用gitlab-runner实现cicd快速部署(未完)
Powershell 美化设置
post-git
1 |
Install-Module posh-git -Scope CurrentUser |
DirColors
1 |
Install-Module DirColors -Scope CurrentUser |
oh-my-posh
1 |
Install-Module oh-my-posh -Scope CurrentUser |
配置
在powershell中输入$PROFILE
查看配置文档路径:
1 |
PS C:\Users\BaiYang> $PROFILE |
在这个文档中输入
1 |
Import-Module DirColors |
重新启动powershell既可
- 字体使用更纱黑体
docker-compose 部署mongodb
1 |
version: '3.7' |
SSH 传输文件
传输本地文件到远程
1 |
scp C:\Users\BaiYang\Desktop\docker-compose.yml root@192.168.2.99:/root/docker/nsq |
- 如果需要指定端口,加入
-P
参数1
scp -P 222
远程下载文件到本地
1 |
scp root@192.168.2.99:/root/docker/nsq/docker-compose.yml C:\Users\BaiYang\Desktop |
传输本地目录到远程
1 |
scp -r C:\Users\BaiYang\Desktop\test root@192.168.2.99:/root/docker |
远程下载目录到本地
1 |
scp -r root@192.168.2.99:/root/docker/test C:\Users\BaiYang\Desktop |
docker-compose 部署nsq
lookup 和 admin
1 |
version: "3.7" |
nsqd
1 |
version: "3.7" |
vscode go proxy设置
go get 国内无法使用解决方法
问题
在国内,使用go get
获取包时,经常碰到https fetch failed
例如执行go get -v -u github.com/sqs/goreturns
:
1 |
github.com/sqs/goreturns (download) |
解决方法
使用代理获取(代理自行配置)。
windows
在PATH路径下新建goget.bat
文件:
1 |
@echo off |
然后需要使用go get
时,直接使用goget
代替即可。
例:
1 |
goget -v -u github.com/sqs/goreturns |
问题解决。
Go 实现一个分组排队取号叫号的逻辑
本文github代码库:https://github.com/zboyco/queuegroup
业务场景(这个包产生的原因)
- 在我们的项目中,由同一个客服端发送到服务器的请求,必须按照请求的顺序进行处理(数据只存在服务端,下一个请求的基础数据就是上一个请求运算完成后的结果);
- 无法保证客服端请求一定严格收到返回后才发送下个请求,偶尔客户端会短时间内发送多个请求,如果直接并发处理会导致数据错误或丢失(多个请求使用旧数据进行运算)。
思路
- 由于请求需要的基础数据依赖于上一次请求的结果,自然想到需要将请求串型处理,说到串型处理,那就是队列了,由于我们只需要对同一客户端发送的请求进行串型处理,所以就需要分组队列,每个组单独一个队列即可。
- 在我们的需求中,主要是每个请求的基础数据依赖于上一个请求,那么只需要在当前请求运算结束以前阻塞后面的请求获取基础数据即可,也就是在当前请求返回前,独占这个队列,不让后面的请求使用。
基于上面两点,我联想到了车站排队购票或者医院排队挂号等线下排队的情形,基本和我们的需求相同,再结合银行的取号排队方式,实现一个分组队列方法: