fix(utils):修复代理池中的空指针异常
- 在遍历代理时跳过空代理对象 - 修正删除无效代理时的并发访问问题-优化代理过滤逻辑避免潜在崩溃
This commit is contained in:
20
.drone.yml
20
.drone.yml
@@ -26,16 +26,16 @@ steps:
|
|||||||
- docker push git.oceanpay.cc/danial/kami_gateway_${DRONE_BRANCH}:${DRONE_BUILD_NUMBER}
|
- docker push git.oceanpay.cc/danial/kami_gateway_${DRONE_BRANCH}:${DRONE_BUILD_NUMBER}
|
||||||
- docker push git.oceanpay.cc/danial/kami_gateway_${DRONE_BRANCH}:latest
|
- docker push git.oceanpay.cc/danial/kami_gateway_${DRONE_BRANCH}:latest
|
||||||
- docker logout git.oceanpay.cc
|
- docker logout git.oceanpay.cc
|
||||||
- name: deploy to docker compose
|
# - name: deploy to docker compose
|
||||||
environment:
|
# environment:
|
||||||
DOCKER_LOGIN:
|
# DOCKER_LOGIN:
|
||||||
from_secret: docker_login
|
# from_secret: docker_login
|
||||||
DOCKER_TOKEN:
|
# DOCKER_TOKEN:
|
||||||
from_secret: docker_token
|
# from_secret: docker_token
|
||||||
commands:
|
# commands:
|
||||||
- docker login git.oceanpay.cc -u $DOCKER_LOGIN -p $DOCKER_TOKEN
|
# - docker login git.oceanpay.cc -u $DOCKER_LOGIN -p $DOCKER_TOKEN
|
||||||
- BRANCH=${DRONE_BRANCH} VERSION=${DRONE_BUILD_NUMBER} docker compose -f /data/kami/docker-compose.yaml --profile gateway up -d
|
# - BRANCH=${DRONE_BRANCH} VERSION=${DRONE_BUILD_NUMBER} docker compose -f /data/kami/docker-compose.yaml --profile gateway up -d
|
||||||
- docker logout git.oceanpay.cc
|
# - docker logout git.oceanpay.cc
|
||||||
|
|
||||||
trigger:
|
trigger:
|
||||||
branch:
|
branch:
|
||||||
|
|||||||
@@ -201,6 +201,9 @@ func (p *OrderBasedProxyStrategy) getUnderLimitedProxy(ctx context.Context, perI
|
|||||||
p.mu.RLock()
|
p.mu.RLock()
|
||||||
for _, proxies := range p.proxies {
|
for _, proxies := range p.proxies {
|
||||||
for _, proxy := range proxies {
|
for _, proxy := range proxies {
|
||||||
|
if proxy == nil {
|
||||||
|
continue
|
||||||
|
}
|
||||||
// 排除指定通道的代理
|
// 排除指定通道的代理
|
||||||
excluded := slices.Contains(excludeChannels, proxy.channel)
|
excluded := slices.Contains(excludeChannels, proxy.channel)
|
||||||
if !excluded {
|
if !excluded {
|
||||||
@@ -221,8 +224,8 @@ func (p *OrderBasedProxyStrategy) getUnderLimitedProxy(ctx context.Context, perI
|
|||||||
func() {
|
func() {
|
||||||
p.mu.Lock()
|
p.mu.Lock()
|
||||||
defer p.mu.Lock()
|
defer p.mu.Lock()
|
||||||
for _, infos := range p.proxies {
|
for index, infos := range p.proxies {
|
||||||
slices.DeleteFunc(infos, func(info *ProxyInfo) bool {
|
p.proxies[index] = slices.DeleteFunc(infos, func(info *ProxyInfo) bool {
|
||||||
return (info != nil && info.proxy == proxy) || info == nil
|
return (info != nil && info.proxy == proxy) || info == nil
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user