From 1b29cf8337809c2d46cd516bcd842099f23a5bbf Mon Sep 17 00:00:00 2001 From: Tigor Hutasuhut Date: Thu, 23 May 2024 15:27:36 +0700 Subject: [PATCH] pubsub: added retry on reddit or database busy --- api/pubsub_download.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/api/pubsub_download.go b/api/pubsub_download.go index 8fe78d0..687309a 100644 --- a/api/pubsub_download.go +++ b/api/pubsub_download.go @@ -60,12 +60,19 @@ func (api *API) StartSubredditDownloadPubsub(messages <-chan *message.Message) { devices, err := models.Devices.Query(ctx, api.db, models.SelectWhere.Devices.Enable.EQ(1)).All() if err != nil { + msg.Nack() log.New(ctx).Err(err).Error("failed to query devices") return } err = api.DownloadSubredditImages(ctx, subreddit, devices) if err != nil { + if errs.HasCode(err, http.StatusTooManyRequests) { + msg.Nack() + } + if errs.Source(err).Error() == "database is locked" { + msg.Nack() + } log.New(ctx).Err(err).Error("failed to download subreddit images", "subreddit", subreddit) return }