事物订阅
订阅是接收事件并对事件进行响应的服务。订阅包含源 (通常为事物)。事物可以订阅通过某一操作作出响应的事件。例如,如果某个实体触发电动机过热 事件,则可通过触发关闭电动机 订阅来订阅该事件。事物可以从其使用的事物模板事物形态继承订阅。
订阅类似于标准服务,但它与事件显式关联。这样,您便可将事件从对其作出响应的代码中分离出来。像服务一样,您可以实现自定义业务逻辑来对事件作出反应。可以利用模型的功能,方法包括通过邮件服务器事物发送电子邮件、写入数据库或调用平台中可用的任何服务。订阅不能像服务那样具有显式返回输出。但是,订阅可以调用模型中线程安全上下文有权访问的任何其他服务。订阅的线程安全上下文被设置为与所触发事件使用相同的线程安全上下文。可以使用用于实现服务的 JavaScript 编辑环境。
订阅具有已定义的输入,该输入是由事件发布的数据包,称为事件数据。如果实体订阅了已定义事件,则会将事件数据传递给订阅函数。事件数据由事件数据形状进行描述。在订阅实现中,从事件传递的数据用作脚本函数的输入。例如,如果将某个实体订阅到事物属性数据更改事件,则会调用订阅脚本函数。因此,事物属性值以及来自事件的其他相关数据会作为事件数据的一部分传递给函数。
多个实体可以订阅同一事件。每个实体可以使用传递的事件数据接收对订阅的调用。为达到解决方案的要求,实体可以采取订阅脚本中的任何操作。
使用此方法与使用从另一服务中调用的服务相比,其优点包括:
事件可通过一个或多个订阅进行订阅。
将根据系统活动调用事件,无需用户交互。
如果有多个事物订阅了某个事件,则可以使用订阅而不是链接多个服务。
* 
ThingWorx 8.4.0 及更高版本支持对同一事物上定义的同一事件进行多次订阅或重复订阅。
* 
事件触发器和订阅异步执行。例如,属性更新操作完成后,属性更新 API 请求将得到即时响应。它不会等待响应数据更改事件的后续订阅完成。
多次订阅
订阅将使用用户定义的名称作为唯一标识符。实体可以对事物上的事件进行多次订阅。例如,如果某个实体触发电动机过热 事件,则它可以使用关闭电动机 订阅和创建工作订单 订阅来订阅该事件,以便对该引擎进行维护检查。也可以为该事件创建任意数量的其他订阅。
如果事物模板或事物形态实现了对某事件的订阅,则使用该事物模板或事物形态的事物也可以创建同一事件的订阅,而无需其他替代方法来在触发事件时执行其他操作。
分布式订阅
* 
分布式订阅功能仅在 ThingWorx 9.4 及更高版本的高可用性环境中可用。
分布式订阅允许在事件触发多个订阅实例时,将订阅分配到所有 ThingWorx 节点上执行。例如,当多个事物订阅相同的计时器或计划程序事件时。这样一来,在高可用性环境下的所有 ThingWorx 节点上执行基于计时器/计划程序的订阅时,可实现此类执行的水平可扩展性,进而优化资源利用率并提高性能。可通过“订阅”选项卡下的“分布式”复选框启用此行为。如果清除“分布式”复选框,则将在生成计时器或计划程序事件的同一节点内执行计时器和计划程序订阅。有关相关配置的详细信息,请参阅以下信息:
有关本地部署,请参阅为 AKKA 配置 SSL/TLS
有关 Docker 环境,请参阅为 ThingWorx 配置 Akka TLS 通信
这对您有帮助吗?