.net - 在 NServiceBus 5 中手动创建 InMemoryPersistence 订阅
问题描述
我正在尝试创建一个“一次性”流程,该流程将通过在 NServiceBus 5 中引发适当的事件来预加载我的服务和一堆数据。但是我正在努力解决如何配置我的“假”订阅所以事件被发布到适当的端点。
这是我创建总线以发送消息的代码:
var busConfiguration = new BusConfiguration();
busConfiguration.UseSerialization<XmlSerializer>();
busConfiguration.UseTransport<MsmqTransport>();
busConfiguration.UsePersistence<InMemoryPersistence>();
using (var bus = Bus.CreateSendOnly(busConfiguration))
{
bus.Publish(new MyEvent());
}
但我不确定如何ISubscriptionStorage
访问InMemoryPersistence
. 我猜我是否可以访问,我可以执行以下操作:
var subscriptionStorage = GetSubscriptionStorage();
subscriptionStorage.Subscribe(new Address("MyQueueName", "MyMachineName"), new MessageType(typeof(MyEvent)));
有任何想法吗?
解决方案
您正在创建一个仅发送端点。仅发送端点发送消息但不接收。因此,不会收到任何事件,也不需要订阅。
将端点切换到完整端点将需要定义存储。InMemoryPersistence
您可以使用自己的实现来包装存储,或者用自定义的实现完全替换它。
推荐阅读
- sql - T-SQL PATINDEX 中双百分号 (%%) 的意义
- c# - C#:超时与经过的时间不匹配
- visual-studio-code - VS Code 在 144hz 显示器上运行速度明显不超过 60fps?
- html - 尝试将 z-index 与 div 一起使用
- autoscaling - ECS Auto Scaling - 无法按 CPU 预留指标横向扩展
- c# - 如何在 F# 中有一个暴露的静态常量成员?
- javascript - 打开/关闭菜单问题;在移动设备和台式机/笔记本电脑上
- ruby - 在与正则表达式相同的命名空间中实例化一个类
- python - Python Pandas 日期时间自定义 BQuarterEnd
- python - Python pandas dataframe pivot 仅适用于 pivot_table() 但不适用于 set_index() 和 unstack()