diff --git a/gorush/worker.go b/gorush/worker.go index a99c657..9b665ba 100644 --- a/gorush/worker.go +++ b/gorush/worker.go @@ -1,6 +1,7 @@ package gorush import ( + "errors" "sync" ) @@ -30,6 +31,15 @@ func startWorker() { } } +// markFailedNotification adds failure logs for all tokens in push notification +func markFailedNotification(notification *PushNotification, reason string) { + LogError.Error(reason) + for _, token := range notification.Tokens { + notification.AddLog(getLogPushEntry(FailedPush, token, *notification, errors.New(reason))) + } + notification.WaitDone() +} + // queueNotification add notification to queue list. func queueNotification(req RequestPush) (int, []LogPushEntry) { var count int @@ -58,7 +68,7 @@ func queueNotification(req RequestPush) (int, []LogPushEntry) { notification.AddWaitCount() } if !tryEnqueue(*notification, QueueNotification) { - LogError.Error("max capacity reached") + markFailedNotification(notification, "max capacity reached") } count += len(notification.Tokens) // Count topic message