19 lines
609 B
Haskell
19 lines
609 B
Haskell
|
|
module Web.Job.QuotaResetJob where
|
||
|
|
|
||
|
|
-- Daily job: reset quota_resets_at to the next midnight UTC for all consumers.
|
||
|
|
-- Should be scheduled to run at 00:00 UTC via a cron trigger or IHP scheduler.
|
||
|
|
|
||
|
|
import Generated.Types
|
||
|
|
import IHP.Prelude
|
||
|
|
import IHP.ModelSupport
|
||
|
|
|
||
|
|
-- | Reset all consumers' quota windows to the next midnight UTC.
|
||
|
|
-- Call this once per day at 00:00 UTC.
|
||
|
|
runQuotaReset :: (?modelContext :: ModelContext) => IO ()
|
||
|
|
runQuotaReset = do
|
||
|
|
sqlExec
|
||
|
|
"UPDATE api_consumers \
|
||
|
|
\SET quota_resets_at = date_trunc('day', NOW() AT TIME ZONE 'UTC') + INTERVAL '1 day'"
|
||
|
|
()
|
||
|
|
pure ()
|