feat: add jikan cache stats query
This commit is contained in:
@@ -31,6 +31,7 @@ type Querier interface {
|
||||
GetEpisodeAvailabilityCache(ctx context.Context, animeID int64) (EpisodeAvailabilityCache, error)
|
||||
GetEpisodeProviderMapping(ctx context.Context, arg GetEpisodeProviderMappingParams) (EpisodeProviderMapping, error)
|
||||
GetJikanCache(ctx context.Context, key string) (string, error)
|
||||
GetJikanCacheStats(ctx context.Context) (GetJikanCacheStatsRow, error)
|
||||
GetJikanCacheStale(ctx context.Context, key string) (string, error)
|
||||
GetSession(ctx context.Context, id string) (Session, error)
|
||||
GetTrackedAiringAnimeIDsDueForEpisodeRefresh(ctx context.Context, limit int64) ([]int64, error)
|
||||
|
||||
@@ -235,6 +235,13 @@ WHERE key = ? AND datetime(expires_at) > CURRENT_TIMESTAMP LIMIT 1;
|
||||
SELECT data FROM jikan_cache
|
||||
WHERE key = ? AND datetime(expires_at) > datetime(CURRENT_TIMESTAMP, '-14 days') LIMIT 1;
|
||||
|
||||
-- name: GetJikanCacheStats :one
|
||||
SELECT
|
||||
COUNT(*) AS total_rows,
|
||||
COUNT(*) FILTER (WHERE datetime(expires_at) <= CURRENT_TIMESTAMP) AS expired_rows,
|
||||
COALESCE(unixepoch(MIN(expires_at)), 0) AS oldest_expires_at_seconds
|
||||
FROM jikan_cache;
|
||||
|
||||
-- name: SetJikanCache :exec
|
||||
INSERT INTO jikan_cache (key, data, expires_at)
|
||||
VALUES (?, ?, ?)
|
||||
|
||||
@@ -576,6 +576,27 @@ func (q *Queries) GetJikanCache(ctx context.Context, key string) (string, error)
|
||||
return data, err
|
||||
}
|
||||
|
||||
const getJikanCacheStats = `-- name: GetJikanCacheStats :one
|
||||
SELECT
|
||||
COUNT(*) AS total_rows,
|
||||
COUNT(*) FILTER (WHERE datetime(expires_at) <= CURRENT_TIMESTAMP) AS expired_rows,
|
||||
COALESCE(unixepoch(MIN(expires_at)), 0) AS oldest_expires_at_seconds
|
||||
FROM jikan_cache
|
||||
`
|
||||
|
||||
type GetJikanCacheStatsRow struct {
|
||||
TotalRows int64 `json:"total_rows"`
|
||||
ExpiredRows int64 `json:"expired_rows"`
|
||||
OldestExpiresAtSeconds int64 `json:"oldest_expires_at_seconds"`
|
||||
}
|
||||
|
||||
func (q *Queries) GetJikanCacheStats(ctx context.Context) (GetJikanCacheStatsRow, error) {
|
||||
row := q.db.QueryRowContext(ctx, getJikanCacheStats)
|
||||
var i GetJikanCacheStatsRow
|
||||
err := row.Scan(&i.TotalRows, &i.ExpiredRows, &i.OldestExpiresAtSeconds)
|
||||
return i, err
|
||||
}
|
||||
|
||||
const getJikanCacheStale = `-- name: GetJikanCacheStale :one
|
||||
SELECT data FROM jikan_cache
|
||||
WHERE key = ? AND datetime(expires_at) > datetime(CURRENT_TIMESTAMP, '-14 days') LIMIT 1
|
||||
|
||||
Reference in New Issue
Block a user