Beispiel #1
0
        public void Enqueue(PushMessageContract message)
        {
            if (message == null)
            {
                throw new ArgumentNullException(nameof(message));
            }

            _messages.Enqueue(message);

            _messageEnqueuedSignal.Release();
        }
Beispiel #2
0
        /// <summary>
        /// invio delle notifiche
        /// </summary>
        /// <returns></returns>
        private async Task DequeueMessagesAsync()
        {
            while (!_stopTokenSource.IsCancellationRequested)
            {
                //recupero del primo messaggio dalla coda
                PushMessageContract messageContract = await _messagesQueue.DequeueAsync(_stopTokenSource.Token);

                if (!_stopTokenSource.IsCancellationRequested)
                {
                    //invio notifica
                    await _notificationService.SendNotificationAsync(messageContract.Subscription, messageContract.NotificationMessage, _stopTokenSource.Token);
                }
            }
        }