Skip to content

Commit 3c11522

Browse files
authored
Allow the cache to be purged. (#3)
1 parent 324452f commit 3c11522

1 file changed

Lines changed: 16 additions & 1 deletion

File tree

api.go

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ type DiskLRU struct {
2020
encoder Encoder
2121

2222
set_stm, get_stm, get_update_expiry_stm,
23-
peek_stm, delete_stm,
23+
peek_stm, delete_stm, purge_stm,
2424
clear_stm, cleanup_expires_stm,
2525
cleanup_lru_stm *sql.Stmt
2626

@@ -43,6 +43,10 @@ func (self *DiskLRU) houseKeeping(ctx context.Context) {
4343
return
4444
}
4545

46+
if self.opts.HouseKeepPeriodSec == 0 {
47+
self.opts.HouseKeepPeriodSec = 60
48+
}
49+
4650
for {
4751
select {
4852
case <-ctx.Done():
@@ -130,6 +134,11 @@ func (self *DiskLRU) Get(key string) (interface{}, error) {
130134
return self.encoder.Decode(buf)
131135
}
132136

137+
func (self *DiskLRU) Purge() error {
138+
_, err := self.purge_stm.Exec()
139+
return err
140+
}
141+
133142
type CacheItem struct {
134143
Key string
135144
Value interface{}
@@ -251,6 +260,12 @@ func NewDiskLRU(
251260
return nil, err
252261
}
253262

263+
self.purge_stm, err = handle.Prepare(
264+
`DELETE FROM cache`)
265+
if err != nil {
266+
return nil, err
267+
}
268+
254269
self.clear_stm, err = handle.Prepare(`DELETE FROM cache`)
255270
if err != nil {
256271
return nil, err

0 commit comments

Comments
 (0)