切换导航条
此项目
正在载入...
登录
allied-creation
/
performance
·
提交
转到一个项目
GitLab
转到群组
项目
活动
文件
提交
管道
0
构建
0
图表
里程碑
问题
0
合并请求
0
成员
标记
维基
派生
网络
创建新的问题
下载为
邮件补丁
差异文件
浏览文件
作者
郑周
2 years ago
提交
370a1c1cde25f3c195557d2ef771b2f4489eea25
1 个父辈
4860e8c3
master
...
dev-pushdata
dev-tangxvhui
dev-zhengzhou
test
v1.3.2-fix
v1.4.0
v2.2.0-fix
v2.2.0
v2.0.0
v1.3.2
v1.3.2-fix
v1.3.1
v1.3.0
1. 项目启动,增加锁,避免重复创建任务数据
显示空白字符变更
内嵌
并排对比
正在显示
2 个修改的文件
包含
36 行增加
和
0 行删除
pkg/application/evaluation_project/project_service.go
pkg/infrastructure/xredis/redis_lock_project.go
pkg/application/evaluation_project/project_service.go
查看文件 @
370a1c1
...
...
@@ -2,6 +2,7 @@ package service
import
(
"fmt"
"gitlab.fjmaimaimai.com/allied-creation/performance/pkg/infrastructure/xredis"
"strconv"
"strings"
"time"
...
...
@@ -501,6 +502,15 @@ func (rs *EvaluationProjectService) List(in *command.QueryProjectCommand) (inter
}
func
(
rs
*
EvaluationProjectService
)
Activate
(
in
*
command
.
ActivateProjectCommand
)
(
interface
{},
error
)
{
lock
:=
xredis
.
NewLockProjectId
(
int
(
in
.
Id
))
err
:=
lock
.
Lock
()
if
err
!=
nil
{
return
nil
,
application
.
ThrowError
(
application
.
INTERNAL_SERVER_ERROR
,
err
.
Error
())
}
defer
func
()
{
lock
.
UnLock
()
}()
transactionContext
,
err
:=
factory
.
ValidateStartTransaction
(
in
)
if
err
!=
nil
{
return
nil
,
err
...
...
pkg/infrastructure/xredis/redis_lock_project.go
0 → 100644
查看文件 @
370a1c1
package
xredis
import
(
"fmt"
"github.com/go-redsync/redsync/v4"
)
type
LockProjectId
struct
{
m
*
redsync
.
Mutex
}
func
NewLockProjectId
(
id
int
)
*
LockProjectId
{
key
:=
fmt
.
Sprintf
(
"performance:project_id:%d"
,
id
)
return
&
LockProjectId
{
m
:
rsync
.
NewMutex
(
key
),
}
}
func
(
lk
*
LockProjectId
)
Lock
()
error
{
return
lk
.
m
.
Lock
()
}
func
(
lk
*
LockProjectId
)
UnLock
()
(
bool
,
error
)
{
return
lk
.
m
.
Unlock
()
}
...
...
请
注册
或
登录
后发表评论