LINGYUN.Abp.EventBus.CAP 消费者查找器 Abp分布式事件配置 服务提供者 Creates a new . 查找消费者集合 获取事件处理器集合 过期消息清理任务 过期消息清理配置 Initializer Storage 创建过期消息清理任务 异步执行任务 CapProcessingServer CapProcessingServer Start Pulse Dispose AbpCAPEventBusModule ConfigureServices OnApplicationInitialization 过期消息清理配置项 发布消息处理失败通知 default: false 批量清理数量 default: 1000 执行间隔(ms) default: 3600000 (1 hours) AbpECAPExecutionFailedException MessageType Message constructor constructor constructor CAP消息扩展 尝试获取消息标头中的租户标识 获取消息标头中的租户标识 重写 ISubscribeInvoker 实现 Abp 租户集成 AbpCAPSubscribeInvoker 调用订阅者方法 获取事件处理类实例 通过给定的类型实例与参数调用订阅者方法 CAP分布式事件总线 Abp分布式事件总线配置 CAP消息发布接口 自定义事件注册接口 本地事件处理器工厂对象集合 本地事件集合 当前用户 当前客户端 取消令牌 constructor 订阅事件 退订事件 事件类型 退订事件 事件类型 事件处理器 退订事件 事件类型 事件处理器工厂 退订所有事件 事件类型 订阅事件 事件类型 事件处理器 发布事件 事件类型 事件数据对象 获取事件处理器工厂列表 自定义事件订阅者 订阅事件 取消订阅 Executes the configured method on . This can be used whether or not the configured method is asynchronous. Even if the target method is asynchronous, it's desirable to invoke it using Execute rather than ExecuteAsync if you know at compile time what the return type is, because then you can directly "await" that value (via a cast), and then the generated code will be able to reference the resulting awaitable as a value-typed variable. If you use ExecuteAsync instead, the generated code will have to treat the resulting awaitable as a boxed object, because it doesn't know at compile time what type it would be. The object whose method is to be executed. Parameters to pass to the method. The method return value. Executes the configured method on . This can only be used if the configured method is asynchronous. If you don't know at compile time the type of the method's returned awaitable, you can use ExecuteAsync, which supplies an awaitable-of-object. This always works, but can incur several extra heap allocations as compared with using Execute and then using "await" on the result value typecasted to the known awaitable type. The possible extra heap allocations are for: 1. The custom awaitable (though usually there's a heap allocation for this anyway, since normally it's a reference type, and you normally create a new instance per call). 2. The custom awaiter (whether or not it's a value type, since if it's not, you need a new instance of it, and if it is, it will have to be boxed so the calling code can reference it as an object). 3. The async result value, if it's a value type (it has to be boxed as an object, since the calling code doesn't know what type it's going to be). The object whose method is to be executed. Parameters to pass to the method. An object that you can "await" to get the method return value. Provides a common awaitable structure that can return, regardless of whether the underlying value is a System.Task, an FSharpAsync, or an application-defined custom awaitable. Helper for detecting whether a given type is FSharpAsync`1, and if so, supplying an for mapping instances of that type to a C# awaitable. The main design goal here is to avoid taking a compile-time dependency on FSharp.Core.dll, because non-F# applications wouldn't use it. So all the references to FSharp types have to be constructed dynamically at runtime. CAP ServiceCollectionExtensions Adds and configures the consistence services for the consistency.