mirror of
https://github.com/nkanaev/yarr.git
synced 2025-05-24 00:33:14 +00:00
store feed errors
This commit is contained in:
parent
6a6153ca48
commit
99684a4b2f
@ -103,6 +103,7 @@ func (h *Handler) startJobs() {
|
|||||||
atomic.AddInt32(h.queueSize, -1)
|
atomic.AddInt32(h.queueSize, -1)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
h.log.Printf("Failed to fetch %s (%d): %s", feed.FeedLink, feed.Id, err)
|
h.log.Printf("Failed to fetch %s (%d): %s", feed.FeedLink, feed.Id, err)
|
||||||
|
h.db.SetFeedError(feed.Id, err)
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
h.db.CreateItems(items)
|
h.db.CreateItems(items)
|
||||||
@ -168,6 +169,7 @@ func (h Handler) requiresAuth() bool {
|
|||||||
|
|
||||||
func (h *Handler) fetchAllFeeds() {
|
func (h *Handler) fetchAllFeeds() {
|
||||||
h.log.Print("Refreshing all feeds")
|
h.log.Print("Refreshing all feeds")
|
||||||
|
h.db.ResetFeedErrors()
|
||||||
for _, feed := range h.db.ListFeeds() {
|
for _, feed := range h.db.ListFeeds() {
|
||||||
h.fetchFeed(feed)
|
h.fetchFeed(feed)
|
||||||
}
|
}
|
||||||
|
@ -132,3 +132,21 @@ func (s *Storage) GetFeed(id int64) *Feed {
|
|||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *Storage) ResetFeedErrors() {
|
||||||
|
if _, err := s.db.Exec(`delete from feed_errors`); err != nil {
|
||||||
|
s.log.Print(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *Storage) SetFeedError(feedID int64, lastError error) {
|
||||||
|
_, err := s.db.Exec(`
|
||||||
|
insert into feed_errors (feed_id, error)
|
||||||
|
values (?, ?)
|
||||||
|
on conflict (feed_id) do update set error = excluded.error`,
|
||||||
|
feedID, lastError.Error(),
|
||||||
|
)
|
||||||
|
if err != nil {
|
||||||
|
s.log.Print(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -65,12 +65,16 @@ end;
|
|||||||
create table if not exists http_states (
|
create table if not exists http_states (
|
||||||
feed_id references feeds(id) unique,
|
feed_id references feeds(id) unique,
|
||||||
last_refreshed datetime not null,
|
last_refreshed datetime not null,
|
||||||
last_error string,
|
|
||||||
|
|
||||||
-- http header fields --
|
-- http header fields --
|
||||||
last_modified string not null,
|
last_modified string not null,
|
||||||
etag string not null
|
etag string not null
|
||||||
);
|
);
|
||||||
|
|
||||||
|
create table if not exists feed_errors (
|
||||||
|
feed_id references feeds(id) unique,
|
||||||
|
error string
|
||||||
|
);
|
||||||
`
|
`
|
||||||
|
|
||||||
type Storage struct {
|
type Storage struct {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user