【发布时间】:2015-04-21 20:55:34
【问题描述】:
在我的设置中,我有一个应用程序应该订阅特定类型的上下文更改。 应用程序当前在启动时执行订阅。但是,如果我重新启动应用程序,订阅就会重复。为了克服这个问题,我开始在数据库中跟踪订阅,以便在我的应用程序 ID 和最新订阅 ID 之间建立关联。
有没有什么方法可以在 Orion 中实现类似的结果(我们称之为“命名订阅”),而不使用外部数据库?
【问题讨论】:
标签: fiware-orion
在我的设置中,我有一个应用程序应该订阅特定类型的上下文更改。 应用程序当前在启动时执行订阅。但是,如果我重新启动应用程序,订阅就会重复。为了克服这个问题,我开始在数据库中跟踪订阅,以便在我的应用程序 ID 和最新订阅 ID 之间建立关联。
有没有什么方法可以在 Orion 中实现类似的结果(我们称之为“命名订阅”),而不使用外部数据库?
【问题讨论】:
标签: fiware-orion
Orion 开发路线图中有一个计划中的订阅“浏览”操作(请参阅this document 中的操作 ID 45),这可能会对您的情况有所帮助。
但是,虽然此操作已实现,但您提到的一种替代方法(即将订阅信息保存在外部数据库中)是访问 Orion DB 本身以获取订阅信息。数据模型(描述为here)非常简单,如果您熟悉 MongoDB,获取信息非常容易。请注意,此解决方案需要访问 Orion DB(即,如果您控制自己的 Orion 实例,这是可行的)。
编辑:鉴于不同的订阅可能使用相同的引用,我建议使用_id 字段来标识每个订阅(_id 字段值是唯一的)。 NGSI 在订阅中不包含元数据,但您可以使用 Orion 本身将订阅 ID 与应用程序相关联,例如具有两个属性的 SubscriptionAssociation 实体,一个用于应用程序名称,另一个用于关联的订阅 ID
编辑:自 Orion 0.25.0 起,GET /v2/subscriptions 操作允许您浏览现有订阅。
【讨论】: