mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 21:19:19 +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() {
|
func (h *Handler) startJobs() {
|
||||||
delTicker := time.NewTicker(time.Hour * 24)
|
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() {
|
worker := func() {
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
@ -53,6 +67,7 @@ func (h *Handler) startJobs() {
|
|||||||
items := listItems(feed)
|
items := listItems(feed)
|
||||||
h.db.CreateItems(items)
|
h.db.CreateItems(items)
|
||||||
atomic.AddInt32(h.queueSize, -1)
|
atomic.AddInt32(h.queueSize, -1)
|
||||||
|
syncSearch()
|
||||||
if !feed.HasIcon {
|
if !feed.HasIcon {
|
||||||
icon, err := findFavicon(feed.Link, feed.FeedLink)
|
icon, err := findFavicon(feed.Link, feed.FeedLink)
|
||||||
if icon != nil {
|
if icon != nil {
|
||||||
@ -64,6 +79,8 @@ func (h *Handler) startJobs() {
|
|||||||
}
|
}
|
||||||
case <- delTicker.C:
|
case <- delTicker.C:
|
||||||
h.db.DeleteOldItems()
|
h.db.DeleteOldItems()
|
||||||
|
case <- syncSearchChannel:
|
||||||
|
h.db.SyncSearch()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user