package Ġcom . tencent . bk . code cc . code cc job . component Ċ Ċ import Ġorg . redis son . Redis son Ċ import Ġorg . redis son . api . RR ate Limiter Ċ import Ġorg . redis son . api . Rate Interval Unit Ċ import Ġorg . redis son . api . Rate Type Ċ import Ġorg . redis son . api . Redis son Client Ċ import Ġorg . redis son . config . Config Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġorg . springframework . context . annotation . Configuration ĊĊ Ċ @ Configuration Ċ class ĠRedis sion Config Ġ{ ĊĊĠĠĠ Ġ@ Value ("\ ${ spring . redis . host }") ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġredis Host : ĠString ĊĊĠĠĠ Ġ@ Value ("\ ${ spring . redis . port }") ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġredis Port : ĠString ĊĊĠĠĠ Ġ@ Value ("\ ${ spring . redis . password }") ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġredis Password : ĠString ĊĊĠĠĠ Ġ@ Value ("\ ${ spring . redis . database : 0 }") ĊĠĠĠ Ġprivate Ġvar Ġredis DB : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ@ Value ("\ ${ issue . submit . limit . interval Limit : 2 5 }") ĊĠĠĠ Ġprivate Ġvar Ġinterval Limit : ĠLong Ġ= Ġ 2 5 ĊĊĠĠĠ Ġ@ Value ("\ ${ issue . submit . limit . interval Seconds : 1 }") ĊĠĠĠ Ġprivate Ġvar Ġinterval Seconds : ĠLong Ġ= Ġ 1 ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġissue Submit Rate Limiter (): ĠR Rate Limiter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠConfig () ĊĠĠĠĠĠĠĠ Ġconfig . use Single Server () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Address (" redis :// $ redis Host :$ redis Port "). set Password ( redis Password ). database Ġ= Ġredis DB ĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠRedis son . create ( config ) ĊĠĠĠĠĠĠĠ Ġval Ġrate Limiter Ġ= Ġclient . get Rate Limiter (" SUBMIT _ ISSUE _ RATE _ LIMITER ") ĊĠĠĠĠĠĠĠ Ġrate Limiter . try Set Rate ( Rate Type . OVER ALL , Ġinterval Limit , Ġinterval Seconds , ĠRate Interval Unit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrate Limiter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġredis sion Client (): ĠRedis son Client Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= ĠConfig () ĊĠĠĠĠĠĠĠ Ġconfig . use Single Server () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Address (" redis :// $ redis Host :$ redis Port "). set Password ( redis Password ). database Ġ= Ġredis DB ĊĠĠĠĠĠĠĠ Ġreturn ĠRedis son . create ( config ) ĊĠĠĠ Ġ} Ċ }