private void NotifySignalrIfNeed(MailBoxData mailbox, ILog log) { if (!_tasksConfig.EnableSignalr) { log.Debug("Skip NotifySignalrIfNeed: EnableSignalr == false"); return; } var now = DateTime.UtcNow; try { if (mailbox.LastSignalrNotify.HasValue && !((now - mailbox.LastSignalrNotify.Value).TotalSeconds > SIGNALR_WAIT_SECONDS)) { mailbox.LastSignalrNotifySkipped = true; log.InfoFormat( "Skip NotifySignalrIfNeed: last notification has occurend less then {0} seconds ago", SIGNALR_WAIT_SECONDS); return; } if (_signalrWorker == null) { throw new NullReferenceException("_signalrWorker"); } _signalrWorker.AddMailbox(mailbox); log.InfoFormat("NotifySignalrIfNeed(UserId = {0} TenantId = {1}) has been succeeded", mailbox.UserId, mailbox.TenantId); } catch (Exception ex) { log.ErrorFormat("NotifySignalrIfNeed(UserId = {0} TenantId = {1}) Exception: {2}", mailbox.UserId, mailbox.TenantId, ex.ToString()); } mailbox.LastSignalrNotify = now; mailbox.LastSignalrNotifySkipped = false; }
private void NotifySignalrIfNeed(MailBox mailbox, ILogger log) { if (!_tasksConfig.EnableSignalr) { return; } try { if (_signalrWorker != null) { _signalrWorker.AddMailbox(mailbox); } } catch (Exception ex) { log.Error("_signalrWorker.AddMailbox(UserId = {0} TenantId = {1}) Exception: {2}", mailbox.UserId, mailbox.TenantId, ex.ToString()); } }