tangled
alpha
login
or
join now
edavis.dev
/
bsky-feeds
1
fork
atom
this repo has no description
1
fork
atom
overview
issues
pulls
pipelines
feat(mostliked): trim posts table
Eric Davis
1 year ago
d55feb34
04aeb978
+31
3 changed files
expand all
collapse all
unified
split
cmd
mostliked
mostliked.go
query.sql
pkg
mostliked
query.sql.go
+19
cmd/mostliked/mostliked.go
···
75
75
return draft, nil
76
76
}
77
77
78
78
+
func trimPostsTable(ctx context.Context, queries *mostliked.Queries) {
79
79
+
ticker := time.NewTicker(1 * time.Minute)
80
80
+
defer ticker.Stop()
81
81
+
82
82
+
for {
83
83
+
select {
84
84
+
case <-ticker.C:
85
85
+
log.Println("trimming posts")
86
86
+
if err := queries.TrimPosts(ctx); err != nil {
87
87
+
log.Println("error trimming posts")
88
88
+
}
89
89
+
}
90
90
+
}
91
91
+
}
92
92
+
78
93
func processEvents(events <-chan []byte) {
79
94
ctx := context.Background()
80
95
···
85
100
if _, err := db.ExecContext(ctx, ddl); err != nil {
86
101
log.Fatal("couldn't create tables")
87
102
}
103
103
+
defer db.Close()
104
104
+
88
105
queries := mostliked.New(db)
89
106
90
107
drafts := ccache.New(ccache.Configure[DraftPost]().MaxSize(50_000).GetsPerPromote(1))
···
102
119
FromLanguages(languages...).
103
120
WithPreloadedLanguageModels().
104
121
Build()
122
122
+
123
123
+
go trimPostsTable(ctx, queries)
105
124
106
125
for evt := range events {
107
126
var like appbsky.FeedLike
+3
cmd/mostliked/query.sql
···
6
6
7
7
-- name: UpdateLikes :exec
8
8
update posts set likes = likes + 1 where uri = ?;
9
9
+
10
10
+
-- name: TrimPosts :exec
11
11
+
delete from posts where create_ts < unixepoch('now', '-24 hours');
+9
pkg/mostliked/query.sql.go
···
38
38
return err
39
39
}
40
40
41
41
+
const trimPosts = `-- name: TrimPosts :exec
42
42
+
delete from posts where create_ts < unixepoch('now', '-24 hours')
43
43
+
`
44
44
+
45
45
+
func (q *Queries) TrimPosts(ctx context.Context) error {
46
46
+
_, err := q.db.ExecContext(ctx, trimPosts)
47
47
+
return err
48
48
+
}
49
49
+
41
50
const updateLikes = `-- name: UpdateLikes :exec
42
51
update posts set likes = likes + 1 where uri = ?
43
52
`