|
@@ -146,63 +146,40 @@ func (f *FirebaseMessageServer) queueRun(ctx context.Context) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- timeoutCtx, cannel := context.WithCancel(ctx)
|
|
|
- go func(ctx context.Context, queue models.FirebaseMessagingQueue) {
|
|
|
- defer cannel()
|
|
|
-
|
|
|
- receiver := queue.Receiver
|
|
|
- firebaseToken, err := f.repos.FirebaseMessageRepository.GetFirebaseToken(ctx, receiver)
|
|
|
- if err != nil {
|
|
|
- if eris.Is(err, models.ErrRecordNotFound) {
|
|
|
- return
|
|
|
- }
|
|
|
- zap.L().Error("unable to find firebase message database",
|
|
|
- zap.Error(err),
|
|
|
- zap.String("user_id", receiver))
|
|
|
+ receiver := queue.Receiver
|
|
|
+ firebaseToken, err := f.repos.FirebaseMessageRepository.GetFirebaseToken(ctx, receiver)
|
|
|
+ if err != nil {
|
|
|
+ if eris.Is(err, models.ErrRecordNotFound) {
|
|
|
return
|
|
|
}
|
|
|
+ zap.L().Error("unable to find firebase message database",
|
|
|
+ zap.Error(err),
|
|
|
+ zap.String("user_id", receiver))
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- // aps := map[string]interface{}{
|
|
|
- // "alert": map[string]interface{}{
|
|
|
- // "title": queue.Title,
|
|
|
- // "body": queue.Body,
|
|
|
- // },
|
|
|
- // }
|
|
|
- // apsBuf, _ := json.Marshal(aps)
|
|
|
- msg := &messaging.Message{
|
|
|
- Token: firebaseToken.Token,
|
|
|
- Data: map[string]string{
|
|
|
- // "aps": string(apsBuf),
|
|
|
- "message": queue.Data,
|
|
|
- },
|
|
|
- Notification: &messaging.Notification{
|
|
|
- Title: queue.Title,
|
|
|
- Body: queue.Body,
|
|
|
- },
|
|
|
- }
|
|
|
-
|
|
|
- zap.L().Info("[firebase] Send", zap.Any("msg", msg), zap.String("user_id", receiver))
|
|
|
- var resultName string
|
|
|
- if resultName, err = client.Send(ctx, msg); err != nil {
|
|
|
- zap.L().Error("[firebase] 发送错误", zap.Error(err), zap.String("user_id", receiver))
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- zap.L().Info("[firebase] Ack", zap.String("user_id", receiver))
|
|
|
- client.Send(ctx, &messaging.Message{})
|
|
|
-
|
|
|
- zap.L().Info("[firebase] Successfully",
|
|
|
- zap.Any("msg", msg),
|
|
|
- zap.String("user_id", receiver),
|
|
|
- zap.String("result", resultName))
|
|
|
- }(timeoutCtx, queue)
|
|
|
+ msg := &messaging.Message{
|
|
|
+ Token: firebaseToken.Token,
|
|
|
+ Data: map[string]string{
|
|
|
+ "message": queue.Data,
|
|
|
+ },
|
|
|
+ Notification: &messaging.Notification{
|
|
|
+ Title: queue.Title,
|
|
|
+ Body: queue.Body,
|
|
|
+ },
|
|
|
+ }
|
|
|
|
|
|
- select {
|
|
|
- case <-timeoutCtx.Done():
|
|
|
- _ = f.repos.FirebaseMessageQueueRepository.Delete(ctx, queue.ID)
|
|
|
- case <-time.After(time.Duration(4 * time.Second)):
|
|
|
- zap.L().Error("[firebase] timeout", zap.Any("queue", queue))
|
|
|
+ zap.L().Info("[firebase] Send", zap.Any("msg", msg), zap.String("user_id", receiver))
|
|
|
+ var resultName string
|
|
|
+ if resultName, err = client.Send(ctx, msg); err != nil {
|
|
|
+ zap.L().Error("[firebase] 发送错误", zap.Error(err), zap.String("user_id", receiver))
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
+ zap.L().Info("[firebase] Successfully",
|
|
|
+ zap.Any("msg", msg),
|
|
|
+ zap.String("user_id", receiver),
|
|
|
+ zap.String("result", resultName))
|
|
|
}
|
|
|
}
|
|
|
}
|