zoukankan      html  css  js  c++  java
  • MediatR INotification Handler执行顺序

    MediatR  INotification  Handler执行不保证顺序!!!

    注册:

    源码调试:

        public class NewUserM : INotification
        {
            public string Username { get; set; }
            public string Password { get; set; }
        }
    
    
        public class EmailHandler: INotificationHandler<NewUserM>
        {
            private static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
    
            public Task Handle(NewUserM notification, CancellationToken cancellationToken)
            {
                Thread.Sleep(3000);
                log.Info("EmailHandler OK");
    
                return Task.FromResult(true);
            }
        }
    
        public class NewUserMHandler : INotificationHandler<NewUserM>
        {
            private static NLog.Logger log = NLog.LogManager.GetCurrentClassLogger();
    
            public Task Handle(NewUserM notification, CancellationToken cancellationToken)
            {
                log.Info("NewUserMHandler OK");
    
                return Task.FromResult(true);
            }
        }

    //Controller

    /// <summary>
    /// 模拟多处理器
    /// </summary>
    /// <param name="user"></param>
    /// <returns></returns>
    public ActionResult Register2(NewUserM user)
    {
    _mediator.Publish(user);

    return RedirectToAction("Login");
    }

    //startup

    var types = new[] {
    typeof(NewUserHandler),

    typeof(LogHandler),
    typeof(NewUserMHandler),
    typeof(EmailHandler),
    };
    services.AddMediatR(types);

      

    over

  • 相关阅读:
    【Linux 日常】设置动态链接库目录
    某站视频python抓取: m3u8转mp4
    GDB 主要调试命令
    算法【查找一】
    算法【排序四】
    算法【排序三】
    Vim常用命令整理
    【OpenCV】贝叶斯之肤色分割模型
    算法【排序二】
    算法【排序一】
  • 原文地址:https://www.cnblogs.com/huawublog/p/14119520.html
Copyright © 2011-2022 走看看