Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
apaas-meshproxy
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
gzga-jzapi
apaas-meshproxy
Commits
3dc9a289
Commit
3dc9a289
authored
Jun 28, 2020
by
张宇迪
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
update计次方式,直接修改数据库
parent
d4e12126
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
41 additions
and
34 deletions
+41
-34
src/handler/proxyhandler.go
src/handler/proxyhandler.go
+7
-10
src/service/field.go
src/service/field.go
+34
-24
No files found.
src/handler/proxyhandler.go
View file @
3dc9a289
...
@@ -44,10 +44,8 @@ func Proxy(c *gin.Context) {
...
@@ -44,10 +44,8 @@ func Proxy(c *gin.Context) {
//判断是否超过调用次数是否可以调用
//判断是否超过调用次数是否可以调用
callflag
,
sensitiveflag
,
err
:=
service
.
QueryCallsCount
(
proxyData
)
callflag
,
sensitiveflag
,
err
:=
service
.
QueryCallsCount
(
proxyData
)
if
err
!=
nil
{
if
err
!=
nil
{
//Return(err.Error())
return
nil
return
nil
}
}
//callflag = false
if
callflag
==
false
{
if
callflag
==
false
{
err
=
errors
.
New
(
`调用达到当日限定次数`
)
err
=
errors
.
New
(
`调用达到当日限定次数`
)
Return
(
nil
,
err
,
resp
)
Return
(
nil
,
err
,
resp
)
...
@@ -64,19 +62,18 @@ func Proxy(c *gin.Context) {
...
@@ -64,19 +62,18 @@ func Proxy(c *gin.Context) {
if
sensitiveflag
==
false
{
if
sensitiveflag
==
false
{
res
=
service
.
SensitiveFilter
(
proxyData
,
res
)
res
=
service
.
SensitiveFilter
(
proxyData
,
res
)
}
}
//服务调用计次
//计次
//err = service.CallCounts(proxyData)
err
=
service
.
CallCounts
(
proxyData
)
err
=
service
.
CallCounts
(
proxyData
)
if
err
!=
nil
{
if
err
!=
nil
{
Return
(
nil
,
err
,
resp
)
Return
(
nil
,
err
,
resp
)
return
nil
return
nil
}
}
////申请调用计次
////
个人
申请调用计次
err
=
service
.
ApplyCallCounts
(
proxyData
)
//
err = service.ApplyCallCounts(proxyData)
if
err
!=
nil
{
//
if err != nil {
Return
(
nil
,
err
,
resp
)
//
Return(nil, err, resp)
return
nil
//
return nil
}
//
}
Return
(
res
,
nil
,
resp
)
Return
(
res
,
nil
,
resp
)
return
nil
return
nil
}))
}))
...
...
src/service/field.go
View file @
3dc9a289
...
@@ -153,34 +153,44 @@ func RecordCall(proxyData model.ProxyData, status int, res []byte) {
...
@@ -153,34 +153,44 @@ func RecordCall(proxyData model.ProxyData, status int, res []byte) {
// return
// return
//}
//}
//服务调用计次
//服务调用计次
//服务调用计次
func
CallCounts
(
proxyData
model
.
ProxyData
)
(
err
error
)
{
func
CallCounts
(
proxyData
model
.
ProxyData
)
(
err
error
)
{
redis
,
err
:=
client
.
GetRedisClient
()
//redis, err := client.GetRedisClient()
//if err != nil {
// fmt.Println(err.Error())
// return
//}
//str, err := redis.Get(fmt.Sprintf("%s", config.ServiceTag))
//if err != nil && err.Error() != `redis: nil` {
// return
//}
//dateMap := make(map[int]int)
//if str != "" {
// err = json.Unmarshal([]byte(str), &dateMap)
// if err != nil {
// return
// }
// if _, ok := dateMap[proxyData.Service_id]; ok {
// dateMap[proxyData.Service_id] = dateMap[proxyData.Service_id] + 1
// } else {
// dateMap[proxyData.Service_id] = 1
// }
//} else {
// dateMap[proxyData.Service_id] = 1
//}
//content, err := json.Marshal(dateMap)
//err = redis.Set(fmt.Sprintf("%s", config.ServiceTag), content, -1)
db
,
err
:=
client
.
GetConnect
()
if
err
!=
nil
{
if
err
!=
nil
{
fmt
.
Println
(
err
.
Error
())
return
return
}
}
//date := time.Now().Format(config.LocalDateFormat)
sql1
:=
fmt
.
Sprintf
(
`BEGIN WORK;
//aMonBefore := time.Now().AddDate(0, -1, 0).Format(config.LocalDateFormat)
LOCK TABLE service IN SHARE ROW EXCLUSIVE MODE;
str
,
err
:=
redis
.
Get
(
fmt
.
Sprintf
(
"%s"
,
config
.
ServiceTag
))
update service set request_count =request_count+1 where id = %d;
if
err
!=
nil
&&
err
.
Error
()
!=
`redis: nil`
{
update service_apply set request_count =request_count+1 where id = %d;
return
}
COMMIT WORK; `
,
proxyData
.
Service_id
,
proxyData
.
Apply_id
)
dateMap
:=
make
(
map
[
int
]
int
)
_
,
err
=
db
.
SQL
(
sql1
)
.
Execute
()
if
str
!=
""
{
err
=
json
.
Unmarshal
([]
byte
(
str
),
&
dateMap
)
if
err
!=
nil
{
return
}
if
_
,
ok
:=
dateMap
[
proxyData
.
Service_id
];
ok
{
dateMap
[
proxyData
.
Service_id
]
=
dateMap
[
proxyData
.
Service_id
]
+
1
}
else
{
dateMap
[
proxyData
.
Service_id
]
=
1
}
}
else
{
dateMap
[
proxyData
.
Service_id
]
=
1
}
content
,
err
:=
json
.
Marshal
(
dateMap
)
err
=
redis
.
Set
(
fmt
.
Sprintf
(
"%s"
,
config
.
ServiceTag
),
content
,
-
1
)
return
return
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment