package Ġpub . ed hol m . services Ċ Ċ import Ġio . micro meter . core . instrument . Meter Registry Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . scheduling . annotation . Scheduled Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġpub . ed hol m . db . Sw osh Repository Ċ import Ġjava . time . Instant Ċ Ċ @ Service Ċ class ĠExp iry Service ( ĊĠ Ġprivate Ġval Ġsw osh Repo : ĠSw osh Repository , ĊĠ Ġmeter Registry : ĠMeter Registry Ċ ) Ġ{ ĊĊĠ Ġprivate Ġval Ġcounter Ġ= Ġmeter Registry . counter (" expired . links ") ĊĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( Expiry Service :: class . java ) ĊĊĠ Ġ@ Scheduled ( fixed Rate String Ġ= Ġ"\ ${ sw osh . expire . rate }", Ġinitial Delay Ġ= Ġ 1 3 3 7 ) ĊĠ Ġfun Ġexpire Old Links () Ġ{ ĊĠĠĠ Ġval Ġnow Ġ= ĠInstant . now () ĊĠĠĠ Ġval Ġexpired Ġ= Ġsw osh Repo . findBy Expires On Before ( now ) ĊĠĠĠ Ġexpired . count (). subscribe Ġ{ Ġc Ġ-> ĊĠĠĠĠĠ Ġif Ġ( c Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" Exp iring Ġ{} Ġlinks Ġbefore Ġ{}", Ġc , Ġnow ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġcounter . increment ( c . toDouble ()) ĊĠĠĠ Ġ} ĊĠĠĠ Ġsw osh Repo . delete All ( expired ). subscribe () ĊĠ Ġ} Ċ }