nservicebus数据库插入重复
我们有一个数据加载器服务,它使用NServiceBus将数据(如果尚未存在)插入SQL DB。队列配置为ConcurrentyLevel>1,因为要加载的数据可能会变得巨大。由于并发级别>1,因此会导致重复插入。是否有办法在NServiceBus内处理此问题nservicebus数据库插入重复,nservicebus,nservicebus-sagas,Nservicebus,Nservicebus Sagas,我们有一个数据加载器服务,它使用NServiceBus将数据(如果尚未存在)插入SQL DB。队列配置为ConcurrentyLevel>1,因为要加载的数据可能会变得巨大。由于并发级别>1,因此会导致重复插入。是否有办法在NServiceBus内处理此问题 注意:我们已经考虑并排除了创建线程安全锁的可能性。一般来说,不需要运行并发级别为1的端点。对于NServiceBus,您也不需要管理线程和处理并发/锁。关于如何设计系统以使其工作,还有其他因素: 不同的传输具有不同级别的事务支持。选择一个
注意:我们已经考虑并排除了创建线程安全锁的可能性。一般来说,不需要运行并发级别为1的端点。对于NServiceBus,您也不需要管理线程和处理并发/锁。关于如何设计系统以使其工作,还有其他因素:
- 不同的传输具有不同级别的事务支持。选择一个支持事务的。这意味着如果重试消息,您将不会获得重复的消息/数据
- 尝试使用幂等性来处理系统。这意味着,由于缺少事务(传输不支持或代码禁用),如果您处理一条消息两次,就不会有多个数据/副作用。“如何”部分需要更好地了解您正在处理的数据和您的域
- 不同的传输具有不同级别的事务支持。选择一个支持事务的。这意味着如果重试消息,您将不会获得重复的消息/数据
- 尝试使用幂等性来处理系统。这意味着,由于缺少事务(传输不支持或代码禁用),如果您处理一条消息两次,就不会有多个数据/副作用。“如何”部分需要更好地了解您正在处理的数据和您的域