在学习和使用Mule时,我无法确定queued-asynchronous flow queue和VM queue之间是否存在差异。
我的问题是,它们是相同的队列(在文档中只有不同的名称)还是不同的队列?
在一个具体的例子中:
function checkdir($dir) {
$file_array = array();
if (is_dir($dir)) {
$objects = scandir($dir);
foreach ($objects as $key => $object) {
if ($object != "." && $object != "..") {
if (filetype($dir."/".$object) == "dir") {
// folder loop , try find files again
$file_array = array_merge($file_array, checkdir($dir."/".$object));
//$file_array[] = 'dir';
} else {
$file_array[] = $dir."/".$object;
//echo $dir."/".$object.'<br>';
}
}
}// end foreach
//reset($objects);
}
return $file_array;
}
VM inbound-endpoint是否从一个队列接收消息,并且该流还有另一个队列来接收来自入站端点的消息?或者他们是相同的SEDA队列?
答案 0 :(得分:0)
这是两个非常不同的概念,一个是基于流的处理方式,另一个是轻量级排队机制。 VM是一种传输,它具有持久的排队功能以及事务。
请参阅(了解流程执行模型的最后一个链接):
答案 1 :(得分:0)
添加您展示的具体示例的一些细节。
您无需明确指定处理策略,Mule会根据入站端点的交换模式选择默认处理策略。因此,当您具有非事务单向端点时,处理策略将排队异步。
VM inbound-endpoint是否接收来自一个队列的消息,以及 flow有另一个队列来接收来自的消息 入站,终点?或者他们是相同的SEDA队列?
要接收消息,Mule将使用专用于VM连接器的线程池(接收器线程绑定到传输)。收到消息后,将使用流程线程池中的线程处理该消息。 (如果我能得到证实或纠正,那将会很棒)。
(大部分信息来自早期答案中发布的链接)