mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
sync search
This commit is contained in:
parent
d528fcaaae
commit
821d512f0a
@ -46,6 +46,20 @@ func (h Handler) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
||||
|
||||
func (h *Handler) startJobs() {
|
||||
delTicker := time.NewTicker(time.Hour * 24)
|
||||
|
||||
syncSearchChannel := make(chan bool, 10)
|
||||
var syncSearchTimer *time.Timer // TODO: should this be atomic?
|
||||
|
||||
syncSearch := func() {
|
||||
if syncSearchTimer == nil {
|
||||
syncSearchTimer = time.AfterFunc(time.Second * 2, func() {
|
||||
syncSearchChannel <- true
|
||||
})
|
||||
} else {
|
||||
syncSearchTimer.Reset(time.Second * 2)
|
||||
}
|
||||
}
|
||||
|
||||
worker := func() {
|
||||
for {
|
||||
select {
|
||||
@ -53,6 +67,7 @@ func (h *Handler) startJobs() {
|
||||
items := listItems(feed)
|
||||
h.db.CreateItems(items)
|
||||
atomic.AddInt32(h.queueSize, -1)
|
||||
syncSearch()
|
||||
if !feed.HasIcon {
|
||||
icon, err := findFavicon(feed.Link, feed.FeedLink)
|
||||
if icon != nil {
|
||||
@ -64,6 +79,8 @@ func (h *Handler) startJobs() {
|
||||
}
|
||||
case <- delTicker.C:
|
||||
h.db.DeleteOldItems()
|
||||
case <- syncSearchChannel:
|
||||
h.db.SyncSearch()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user