高级模式

内置的错误处理机制(Built-in Error Handling Mechanism)

CSM框架提供了内置的错误处理机制,用于捕获和处理模块运行过程中出现的错误。每个CSM模块在发生错误时,会自动广播Error Occurred状态更新,任何订阅了该状态的模块都可以捕获并处理这些错误。

工作原理

  1. 当CSM模块中出现错误时,错误会通过错误线传递到模块中
  2. 错误信息会触发CSM模块轮转到Error Handler状态
  3. Error Handler状态中,会将错误信息通过Error Occurred状态抛出
  4. 任何订阅了该模块Error Occurred状态的模块,可以捕获并处理此错误

全局错误处理

通过在主程序中订阅所有模块的Error Occurred广播事件,可以实现全局的错误处理机制:

Error Occurred@* >> Error Handler -><register>

当任何CSM子模块抛出Error Occurred状态变化时,会触发主程序的Error Handler状态,处理捕获的事件。

示例

可参考范例 /Example/4. Advance Examples/1. Global Error Handling

工作者模式(worker mode)

工作者模式(Worker Mode)是CSM框架中的一种高级模式,允许多个可克隆的CSM实例作为节点运行,共同组成一个工作者模块。

工作原理

  1. 为避免命名冲突,工作者模块使用附加”#”后缀的模块名称,告知CSM框架这是一个工作者模块
  2. 当消息发送给工作者模块时,将使用公平队列机制处理它,第一个空闲的模块将会处理这个消息
  3. 从外部看,系统表现得好像只有一个模块在运行,所有CSM概念(例如同步、异步和广播)都保持不变

特点

  • 提高系统的并发处理能力
  • 负载均衡,自动将消息分配给空闲的工作者
  • 从外部看,工作者模块表现为单个模块
  • 支持动态扩展工作者数量

实现步骤

  1. 使用高级VI将CSM模块标记为worker模式(添加#作为后缀)
  2. 异步或同步调用多个工作者CSM模块
  3. 向工作者模块发送消息,系统会自动将消息分配给空闲的工作者
  4. 退出时,向所有工作者模块发送Macro: Exit消息

示例

可参考范例 /Example/4. Advance Examples/2. Worker Mode

责任链模式(Chain of Responsibility mode)

责任链模式(Chain of Responsibility mode)是CSM框架中的一种高级模式,允许多个CSM模块按顺序处理消息。

工作原理

  1. 责任链CSM模块应始终以后缀”$”和整数标记,例如 “CSMName$1”、”CSMName$2”等
  2. 每个单独的链模块只能处理特别允许的消息
  3. 如果一条消息被多个链模块允许,则顺序最低的链模块将处理该消息,并且该消息不会再被更高顺序的链模块处理
  4. 如果链中没有模块可以处理该消息,将返回一个错误

特点

  • 解耦请求发送者和接收者
  • 允许动态组合处理流程
  • 每个模块只需要关注自己能处理的消息
  • 支持灵活的处理顺序调整

实现步骤

  1. 为每个链模块添加特殊允许的消息
  2. 使用后缀”$”和整数标记链模块,例如 “Chain$1”、”Chain$2”等
  3. 向责任链模块发送消息,系统会自动将消息传递给第一个能处理它的链模块
  4. 退出时,向责任链模块发送Macro: Exit消息

示例

可参考范例 /Example/4. Advance Examples/3. Chain of Responsibility Mode

results matching ""

    No results matching ""