【发布时间】:2013-11-13 14:23:34
【问题描述】:
我们的情况是有 2 个模块,一个有发布者,另一个有订阅者。发布者将使用关键属性发布一些示例。发布者是否可以阻止订阅者阅读某些样本?当具有发布者的模块当前正在更新样本时会出现这种情况,它不希望任何其他人在完成之前阅读该样本。类似互斥锁的东西。 我们计划使用 Opensplice DDS,但请提供您的输入,即使它们不是特定于 Opensplice。 谢谢。
【问题讨论】:
-
您的问题对我来说并不完全清楚。您说当发布者所在的模块当前正在更新示例时会出现这种情况。使用 DDS 更新单个样本始终是原子操作。假设您正在寻找类似于 多个 样本事务的机制,那么了解事务中的样本是否由同一个 DataWriter 编写很重要——您只提到了 Publisher,是吗?意思是说DataWriter?
-
抱歉不清楚。是的,Publisher 我的意思是 DataWriter 和事务中的样本是由同一个 DataWriter 编写的。我会尽量说得更清楚。当我说更新样本时,我的意思是模块正在进行一些处理,并且在这段时间内(即当它正在处理要更新样本的数据时)我想阻止订阅者读取样本.当我知道将要发布更新时,我基本上想确保没有订阅者阅读示例。我希望这能让它更清楚,但如果我不是,请告诉我。
-
好的,所以听起来您想在进行计算时为某个样本“锁定”DataReader。然后,当计算完成后,您要编写样本并解锁 DataReader。有点像数据库中的记录级锁。对吗?
-
对不起,我的回复延迟了,但这是绝对正确的..
标签: data-distribution-service opensplice