我是 esql 的新手,在我的消息流中有一个查找文件,其中包含一些用于分叉消息的值。现在我有一个新的要求,即从查找缓存文件中读取一个值并搜索字符串,因此如果包含特定字符串,则复制消息并分叉到多个队列,如果字符串不存在分叉到单个队列。有人可以帮忙吗?
谢谢,维诺特
我是 esql 的新手,在我的消息流中有一个查找文件,其中包含一些用于分叉消息的值。现在我有一个新的要求,即从查找缓存文件中读取一个值并搜索字符串,因此如果包含特定字符串,则复制消息并分叉到多个队列,如果字符串不存在分叉到单个队列。有人可以帮忙吗?
谢谢,维诺特
您不应读取每条消息的文件,而是将文件的内容缓存在 SHARED 变量中。
为此,您的消息流应该有 2 个输入队列,一个用于获取要路由的消息,第二个用于接收消息以启动将文件重新加载到缓存中的技术队列。
流程的第二部分应如下所示:MQ 输入 -> 文件读取 -> 计算
并将文件内容存储到SHARED变量的逻辑放到Compute中。
如您所见,您没有在 ESQL 中读取文件,而是通过在流程中使用 File Read 节点来执行此操作,并且仅使用 ESQL 来处理文件内容。您可以在执行路由的流程的第一部分访问存储在 SHARED 变量中的值。