<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Jaina.NET 事件總線

          聯(lián)合創(chuàng)作 · 2023-10-01 07:24

          Jaina

            

          .NET 事件總線,簡化項(xiàng)目、類庫、線程、服務(wù)等之間的通信,代碼更少,質(zhì)量更好。?

          Jaina.drawio

          源碼解析

          特性

          • 簡化組件之間通信
            • 支持事件監(jiān)視器
            • 支持動(dòng)作執(zhí)行器
            • 支持自定義消息存儲(chǔ)組件
            • 支持自定義策略執(zhí)行
            • 支持單消費(fèi)、多消費(fèi)消息
            • 支持消息冪等性處理
          • 高內(nèi)聚,低耦合,使代碼更簡單
          • 非??焖伲棵肟商幚?span> 30000 + 消息
          • 很小,僅 10KB
          • 無第三方依賴
          • 可在 Windows/Linux/MacOS 守護(hù)進(jìn)程部署
          • 支持分布式、集群
          • 高質(zhì)量代碼和良好單元測試

          安裝

          Install-Package Jaina
          dotnet add package Jaina

          快速入門

          我們在主頁上有不少例子,這是讓您入門的第一個(gè):

          1. 定義事件訂閱者 ToDoEventSubscriber
          // 實(shí)現(xiàn) IEventSubscriber 接口
          public class ToDoEventSubscriber : IEventSubscriber
          {
              private readonly ILogger<ToDoEventSubscriber> _logger;
              public ToDoEventSubscriber(ILogger<ToDoEventSubscriber> logger)
              {
                  _logger = logger;
              }
          
              // 標(biāo)記 [EventSubscribe(事件 Id)] 特性
              [EventSubscribe("ToDo:Create")]
              // [EventSubscribe("ToDo:CreateOrUpdate")] // 支持多個(gè)
              public async Task CreateToDo(EventHandlerExecutingContext context)
              {
                  var todo = context.Source;
                  _logger.LogInformation("創(chuàng)建一個(gè) ToDo:{Name}", todo.Payload);
                  await Task.CompletedTask;
              }
          }
          1. 創(chuàng)建控制器 ToDoController,依賴注入 IEventPublisher 服務(wù):
          [Route("api/[controller]/[action]")]
          [ApiController]
          public class ToDoController : ControllerBase
          {
              // 依賴注入事件發(fā)布者 IEventPublisher
              private readonly IEventPublisher _eventPublisher;
              public ToDoController(IEventPublisher eventPublisher)
              {
                  _eventPublisher = eventPublisher;
              }
          
              // 發(fā)布 ToDo:Create 消息
              [HttpPost]
              public async Task CreateDoTo(string name)
              {
                  await _eventPublisher.PublishAsync(new ChannelEventSource("ToDo:Create", name));
              }
          }
          1.  Startup.cs 注冊 EventBus 服務(wù):
          public class Startup
          {
              public void ConfigureServices(IServiceCollection services)
              {
                  // 注冊 EventBus 服務(wù)
                  services.AddEventBus(buidler =>
                  {
                      // 注冊 ToDo 事件訂閱者
                      buidler.AddSubscriber<ToDoEventSubscriber>();
                  });
                  // ....
              }
          
              public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
              {
                  // ....
              }
          }
          1. 運(yùn)行項(xiàng)目:
          info: Jaina.Samples.ToDoEventSubscriber[0]
                創(chuàng)建一個(gè) ToDo:Jaina

          更多文檔

          文檔

          您可以在主頁找到 Jaina 文檔。

          貢獻(xiàn)

          該存儲(chǔ)庫的主要目的是繼續(xù)發(fā)展 Jaina 核心,使其更快、更易于使用。Jaina 的開發(fā)在 Gitee 上公開進(jìn)行,我們感謝社區(qū)貢獻(xiàn)錯(cuò)誤修復(fù)和改進(jìn)。

          許可證

          Jaina 采用 MulanPSL-2.0 開源許可證。

          Copyright (c) 2020-2021 百小僧, Baiqian Co.,Ltd.
          Jaina is licensed under Mulan PSL v2.
          You can use this software according to the terms andconditions of the Mulan PSL v2.
          You may obtain a copy of Mulan PSL v2 at:
                      https://gitee.com/dotnetchina/Jaina/blob/master/LICENSE
          THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUTWARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED,INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
          See the Mulan PSL v2 for more details.
          瀏覽 42
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  屌操网| porncao1 | 97伊人 | 亚洲欧洲精品成人久久奇米网 | 日日操操|