public void Enqueue(PushMessageContract message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } _messages.Enqueue(message); _messageEnqueuedSignal.Release(); }
/// <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); } } }