track running status
This commit is contained in:
parent
f3bfd6fb3a
commit
a2c8e30e79
3 changed files with 12 additions and 5 deletions
|
|
@ -63,7 +63,7 @@ func StaticHandler(rw http.ResponseWriter, req *http.Request) {
|
|||
|
||||
func StatusHandler(rw http.ResponseWriter, req *http.Request) {
|
||||
writeJSON(rw, map[string]interface{}{
|
||||
"running": handler(req).queueSize > 0,
|
||||
"running": *handler(req).queueSize > 0,
|
||||
"stats": db(req).FeedStats(),
|
||||
})
|
||||
}
|
||||
|
|
@ -438,6 +438,8 @@ func OPMLImportHandler(rw http.ResponseWriter, req *http.Request) {
|
|||
}
|
||||
}
|
||||
}
|
||||
handler(req).fetchAllFeeds()
|
||||
rw.WriteHeader(http.StatusOK)
|
||||
} else {
|
||||
rw.WriteHeader(http.StatusMethodNotAllowed)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,15 +14,16 @@ type Handler struct {
|
|||
db *storage.Storage
|
||||
log *log.Logger
|
||||
feedQueue chan storage.Feed
|
||||
queueSize int32
|
||||
queueSize *int32
|
||||
}
|
||||
|
||||
func New(db *storage.Storage, logger *log.Logger) *Handler {
|
||||
queueSize := int32(0)
|
||||
return &Handler{
|
||||
db: db,
|
||||
log: logger,
|
||||
feedQueue: make(chan storage.Feed, 1000),
|
||||
queueSize: 0,
|
||||
queueSize: &queueSize,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -51,7 +52,7 @@ func (h *Handler) startJobs() {
|
|||
case feed := <-h.feedQueue:
|
||||
items := listItems(feed)
|
||||
h.db.CreateItems(items)
|
||||
atomic.AddInt32(&h.queueSize, -1)
|
||||
atomic.AddInt32(h.queueSize, -1)
|
||||
case <- delTicker.C:
|
||||
h.db.DeleteOldItems()
|
||||
}
|
||||
|
|
@ -77,7 +78,7 @@ func (h *Handler) fetchAllFeeds() {
|
|||
}
|
||||
|
||||
func (h *Handler) fetchFeed(feed storage.Feed) {
|
||||
atomic.AddInt32(&h.queueSize, 1)
|
||||
atomic.AddInt32(h.queueSize, 1)
|
||||
h.feedQueue <- feed
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue