code: func queueNotification(req RequestPush) (int, []LogPushEntry) {
  	var count int
  	wg := sync.WaitGroup{}
  	newNotification := []*PushNotification{}
  	for i := range req.Notifications {
  		notification := &req.Notifications[i]
  		switch notification.Platform {
  		case PlatFormIos:
  			if !PushConf.Ios.Enabled {
  				continue
  			}
  		case PlatFormAndroid:
  			if !PushConf.Android.Enabled {
  				continue
  			}
  		}
  		newNotification = append(newNotification, notification)
  	}
  
  	log := make([]LogPushEntry, 0, count)
  	for _, notification := range newNotification {
  		if PushConf.Core.Sync {
  			notification.wg = &wg
  			notification.log = &log
  			notification.AddWaitCount()
  		}
  		if !tryEnqueue(*notification, QueueNotification) {
  			LogError.Error("max capacity reached")
  		}
  		count += len(notification.Tokens)
  		// Count topic message
  		if notification.To != "" {
  			count++
  		}
  	}
  
  	if PushConf.Core.Sync {
  		wg.Wait()
  	}
  
  	StatStorage.AddTotalCount(int64(count))
  
  	return count, log
  }
docs: // queueNotification add notification to queue list.