public async Task <MessageResult> Send(InvokeMessage message) { var watch = Stopwatch.StartNew(); try { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("准备发送消息"); } var callback = RegistCallbackAsync(message.Id); if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(message)}"); } //发送 await _sender.Send(message); if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug("消息发送成功"); } return(await callback); } finally { watch.Stop(); if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug($"send message {watch.ElapsedMilliseconds} ms"); } } }
public async Task <T> Send <T>(object message) { try { _logger.LogDebug("准备发送消息"); var microMessage = new MicroMessage(message); var callback = RegistCallbackAsync <T>(microMessage.Id); try { _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(microMessage)}"); //发送 await _sender.Send(microMessage); } catch (Exception exception) { _logger.LogError(exception, "与服务端通讯时发生了异常"); throw new SpearException("与服务端通讯时发生了异常"); } _logger.LogDebug("消息发送成功"); return(await callback); } catch (Exception ex) { _logger.LogError(ex, "消息发送失败。"); throw new SpearException("消息发送失败"); } }
internal void RegisteredMessageSender(IMessageSender messageSender, Type messageType) { if (IsEnabled()) { RegisteredMessageSender(messageSender.Path, messageSender.GetType().Name, messageType.ToString()); } }
public async Task <IActionResult> CreateCommentary(CommentaryViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var relatedBlog = _context.Blogs.FirstOrDefault(x => x.Id == model.BlogId); if (relatedBlog == null) { return(Redirect(pathToHome)); } var commentary = new Commentary() { Text = model.Text, Blog = relatedBlog, BlogId = model.BlogId, DateTime = DateTime.Now, User = await _userManager.GetUserAsync(User) }; _context.Commentaries.Add(commentary); _context.SaveChanges(); _messageSender.Send(_messageSender.GetType().ToString()); return(Redirect(pathToBlogs)); }
public static void RegisterView(IMessageSender viewModel) { Type viewModelType = viewModel.GetType(); if (_views.ContainsKey(viewModelType)) { IMessageListener listener = Activator.CreateInstance(_views[viewModelType]) as IMessageListener; listener.Initialize(viewModel); _registeredViews.Add(listener); } }
protected SqlBus(IMessageSender sender, ITextSerializer serializer) { if (!typeof(ISqlBus).IsAssignableFrom((sender.GetType()))) { throw new InvalidCastException( "El sender debe implementar ISqlBus para poder incluirlo en transacciones distribuidas al bus"); } this.sender = sender; this.serializer = serializer; }
public async Task <T> Send <T>(object message) { var watch = Stopwatch.StartNew(); try { _logger.LogDebug("准备发送消息"); var microMessage = new MicroMessage(message); var callback = RegistCallbackAsync <T>(microMessage.Id); try { if (_logger.IsEnabled(LogLevel.Debug)) { _logger.LogDebug($"{_sender.GetType()}:send :{JsonConvert.SerializeObject(microMessage)}"); } //发送 await _sender.Send(microMessage); } catch (Exception exception) { if (exception is SpearException) { throw; } _logger.LogError(exception, "与服务端通讯时发生了异常"); throw new SpearException("与服务端通讯时发生了异常"); } _logger.LogDebug("消息发送成功"); return(await callback); } catch (Exception ex) { _logger.LogError(ex, "消息发送失败。"); throw new SpearException("消息发送失败"); } finally { watch.Stop(); _logger.LogDebug($"send message {watch.ElapsedMilliseconds} ms"); } }
public void AddSender(IMessageSender sender) { _logger.Info(this, $"Adding {sender.GetType().Name} sender '{sender.SenderName}'"); _senders.Add(sender); }
internal void RegisteredMessageSender(IMessageSender messageSender, Type messageType) { if (IsEnabled()) RegisteredMessageSender(messageSender.GetType().Name, messageSender.Path, messageType.ToString()); }